У меня есть столбец и линейный график с использованием первичной и вторичной оси Y. Мне интересно, как я могу отформатировать каждую ось отдельно.
Я хочу быть в состоянии сделать 2 вещи:
- Максимальная первичная ось должна быть установлена на 100
- Уметь использовать
colorByPoint
для серии столбцов. В настоящее время, когда я использую этот параметр, ряд линий не отображается.
Ниже мой набор данных:
> 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")))
Ниже мой код:
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))
Если вы удалите hc_plotOptions
, отобразится серия строк. Если вы сохраните его, colorByPoint
сработает, но ряд линий исчезнет.