I have a column & line chart, using primary and secondary y-axis. I am wondering how I can format each axis separately.
I want to be able to do 2 things:
- Have the primary axis maximum be set at 100
- Be able to use
colorByPointfor the column series. Currently when I use the parameter, the line series does not appear.
Below is my dataset:
> dput(SiteOTD)
structure(list(SBU = c("LS", "LS", "LS", "INT", "LS", "APS",
"LS", "CS", "INT", "CS", "SIS", "CS", "APS", "ES", "ASG", "CS",
"INT", "ASG", "ES", "ES", "APS", "CS", "SIS", "CS", "CS", "SIS",
"APS", "CS", "CS", "ASG", "ASG", "CS", "ES", "CS", "SIS", "ASG",
"APS", "ASG", "CS", "SIS", "CS", "SIS", "APS", "CS", "ES", "LS"
), Region = c("IATA III", "IATA I", "IATA I", "IATA I", "IATA III",
"IATA I", "IATA II", "IATA III", "IATA I", "IATA I", "IATA I",
"IATA II", "IATA II", "IATA I", "IATA II", "IATA I", "IATA I",
"IATA I", "IATA I", "IATA II", "IATA II", "IATA I", "IATA II",
"IATA I", "IATA II", "IATA I", "IATA II", "IATA I", "IATA III",
"IATA II", "IATA II", "IATA III", "IATA I", "IATA I", "IATA II",
"IATA I", "IATA II", "IATA III", "IATA III", "IATA I", "IATA II",
"IATA I", "IATA II", "IATA II", "IATA II", "IATA I"), Plant.Name = c("Witherhill Park",
"Louisville", "Los Angeles", "Jamestown", "Hong Kong", "Oakville",
"London", "Xiamen", "Phoenix", "Phoenix", "Wilson", "Dubai",
"Wolverhampton", "Rome", "Prestwick", "Miramar", "Colorado",
"Chula Vista", "Windsor Locks", "Marston", "Torino", "Puerto Rico",
"LHotellier", "Monroe", "Maastricht", "Burnsville", "Vernon",
"Rockford", "Singapore", "Turkey", "Toulouse", "FAST", "Peabody",
"NURS", "Plymouth", "Foley", "Brugherio.Luserna", "Singapore",
"Malaysia", "Vergennes", "Paris", "Brea", "St Ouen", "Dijon",
"Marston Green", "Wichita"), OTD = c(0.988165680473373, 0.918974782968169,
0.907429245283019, 0.84375, 0.822389666307858, 0.782608695652174,
0.776832460732984, 0.765151515151515, 0.734375, 0.718238993710692,
0.707799767171129, 0.690721649484536, 0.687732342007435, 0.675,
0.663829787234043, 0.641509433962264, 0.636363636363636, 0.629955947136564,
0.60202260559191, 0.601351351351351, 0.6, 0.59, 0.586206896551724,
0.566975568660489, 0.558333333333333, 0.548062015503876, 0.534743202416918,
0.521978021978022, 0.51063829787234, 0.5, 0.496240601503759,
0.488888888888889, 0.485294117647059, 0.484848484848485, 0.470588235294118,
0.448818897637795, 0.440677966101695, 0.436619718309859, 0.435672514619883,
0.397752808988764, 0.396648044692737, 0.367647058823529, 0.322147651006711,
0.304568527918782, 0.232876712328767, 0.07981220657277), Shipments = c(169,
2419, 1696, 32, 929, 69, 1528, 132, 128, 795, 859, 97, 269, 40,
236, 530, 22, 227, 1681, 149, 276, 100, 29, 1187, 600, 1290,
331, 182, 611, 6, 133, 90, 272, 338, 51, 128, 118, 142, 344,
445, 179, 68, 149, 197, 292, 213)), row.names = c(NA, -46L), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), vars = c("SBU", "Region"), drop = TRUE, .Names = c("SBU",
"Region", "Plant.Name", "OTD", "Shipments"), indices = list(5L,
c(12L, 20L, 26L, 36L, 42L), c(17L, 35L), c(14L, 29L, 30L),
37L, c(9L, 15L, 21L, 23L, 27L, 33L), c(11L, 24L, 40L, 43L
), c(7L, 28L, 31L, 38L), c(13L, 18L, 32L), c(19L, 44L), c(3L,
8L, 16L), c(1L, 2L, 45L), 6L, c(0L, 4L), c(10L, 25L, 39L,
41L), c(22L, 34L)), group_sizes = c(1L, 5L, 2L, 3L, 1L, 6L,
4L, 4L, 3L, 2L, 3L, 3L, 1L, 2L, 4L, 2L), biggest_group_size = 6L, labels = structure(list(
SBU = c("APS", "APS", "ASG", "ASG", "ASG", "CS", "CS", "CS",
"ES", "ES", "INT", "LS", "LS", "LS", "SIS", "SIS"), Region = c("IATA I",
"IATA II", "IATA I", "IATA II", "IATA III", "IATA I", "IATA II",
"IATA III", "IATA I", "IATA II", "IATA I", "IATA I", "IATA II",
"IATA III", "IATA I", "IATA II")), row.names = c(NA, -16L
), class = "data.frame", vars = c("SBU", "Region"), drop = TRUE, .Names = c("SBU",
"Region")))
Below is my code:
input1 <- "APS"
input2 <- NULL
input3 <- NULL
if (is.null(input1) & is.null(input2) & is.null(input3)) {SiteOTD$Colors <- "#003395"
} else if (!is.null(input1) & is.null(input2) & is.null(input3)) {SiteOTD$Colors <- ifelse(SiteOTD$SBU == input1,"#000000","#003395")}
highchart() %>%
hc_yAxis_multiples(list(title = list(text = "%, OTD"),lineWidth = 0), list(title = list(text = "Qty, Volume"), opposite = TRUE)) %>%
hc_add_series(SiteOTD, "column", hcaes(x = Plant.Name, y = round(OTD,2)*100), name = "On Time Delivery", yAxis = 0, dataLabels = list(enabled = TRUE, fontSize = "0.5vh")) %>%
hc_add_series(SiteOTD, "line", hcaes(x = Plant.Name, y = Shipments), name = "Volume", marker = "diamond", color = "#FF7900", yAxis = 1) %>%
hc_xAxis(title = "Sites", categories = paste0(SiteOTD$Plant.Name,"-",SiteOTD$SBU), labels = list(step = 1, rotation = -60, style = list(fontSize = "1.0vh"))) %>%
hc_tooltip(crosshairs = TRUE, shared = TRUE, headerFormat = "<b>{point.x}</b><br>") %>%
hc_legend(enabled = FALSE) %>%
hc_plotOptions(series = list(colorByPoint = TRUE, type = "column", colors = SiteOTD$Colors))
If you remove hc_plotOptions, the line series shows. If you keep it, colorByPoint works but the line series disappears.