I want to change the x-axis type from datetime to category. For example: Primary Chart would be a line chart by group and drilldown chart would be a column chart.
There is a solution given in Highcharts (Highcharts, Can you change the chart type for drilldowns?, Highcharts chart with 'datetime' xAxis - use categories on drilldown) but I'm not able to translate it to R.
PFB the code.
library("dplyr")
library("purrr")
library("highcharter")
df <- data_frame(
car_brand = c("Hyundai","Hyundai","Hyundai", "Benz","Benz","Benz", "Tesla","Tesla","Tesla"),
units_sold = c(10,15,20,11,8,13,6,5,7),
date = c("2019-01-01", "2019-02-01","2019-03-01","2019-01-01","2019-02-01","2019-03-01","2019-01-01","2019-02-01","2019-03-01")
)
df$units_sold <- as.numeric(df$units_sold)
df$date <- as.Date(df$date)
df$drilldown <- paste(df$car_brand, ",", df$date)
carBrands<- df %>%
select(date, car_brand)
getCarDetails<- function(brands){
carList <- list()
listofdfs <- list() #Create a list in which you intend to save your df's.
for(i in 1:nrow(brands)){ #Loop through the numbers of ID's instead of the ID's
#You are going to use games[i] instead of i to get the ID
BrandCarData <- data_frame(
car = c("H1","H2","H3","H4","H5"),
units = c(1,2,3,4,5)
)
BrandCarData$units <- as.numeric(BrandCarData$units)
dsCar <- list_parse2(BrandCarData)
listofdfs[[i]] <- dsCar
carList[[i]] <- list (name = brands[[2]][i],
type = "column",
id = paste(brands[[2]][i], ",", brands[[1]][i]),
data = listofdfs[[i]])
}
return(carList) #Return the list of dataframes.
}
listCar <- getCarDetails(brands = carBrands)
dfDates <- NULL
dfDates$Date <- datetime_to_timestamp(as.Date(df$date, format = "%Y-%m-%d"))
hc <- hchart(df,"line", hcaes(x=date, y =
units_sold, group
= car_brand )) %>%
hc_xAxis(categories = dfDates$Date, title = list(text = "<b>Date</b>"), type = "datetime") %>%
hc_plotOptions(column = list(dataLabels = list(enabled = FALSE), enableMouseTracking = TRUE))%>%
hc_tooltip(borderWidth = 1.5,
pointFormat = paste('<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>')) %>%
hc_legend(enabled = TRUE) %>%
hc_title(text = "Brand Units Sold Monthy Trend",
style = list(fontSize = "12px", fontWeight = "bold")) %>%
hc_yAxis(title = list(text = "<b>Units <br>(In Thousands)</br></b>"))
hc
hc1 <- hc %>%
hc_drilldown(allowPointDrilldown = TRUE,
series = listCar)
hc1
As can be seen from the attached graphs, the x-axis of second chart is still showing x-axis labels in datetime format.
Any suggestions?