R Highcharter Проблемы с добавлением plotBands по оси Y, где используется hc_yAxis_multiples - PullRequest
2 голосов
/ 19 марта 2020

Попытка добавить plotBands с LHS по оси Y, но с ошибками

Ошибка: все аргументы должны быть названы в списке

Пример из набора эталонных данных:

library(highcharter)
library(dplyr)

df1 <- data.frame(month = c("Jan", "Feb", "Mar", "Apr", "May", "Jun",
                            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
                  values1 = c(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
                              26.5, 23.3, 18.3, 13.9, 9.6), stringsAsFactors = F)

df1$values2 <- df1$values1/5

Графики:

hc <- highchart() %>% 
        hc_yAxis_multiples(
          list(lineWidth = 3),
          list(showLastLabel = T, opposite = TRUE)) %>% 
        hc_title(text = "A nice chart") %>% 
        hc_chart(type = "column") %>% 
        hc_xAxis(categories = df1$month) %>% 
        hc_add_series(data = df1$values1) %>%
        hc_add_series(data = df1$values2, type = "spline", color = "#1FA67A", yAxis = 1)

hc <- hc %>% 
        hc_tooltip(crosshairs = TRUE, shared = TRUE) %>% 
        hc_yAxis(minorGridLineWidth = 0, gridLineWidth = 0,
                 plotBands = list(
                   list(from = 10, to = 20, color = "rgba(68, 170, 213, 0.1)",
                        label = list(text = "A low band")),
                   list(from = 20, to = 25, color = "rgba(0, 0, 0, 0.1)",
                        label = list(text = "A medium band")),
                   list(from = 25, to = 30, color = "rgba(68, 170, 213, 0.1)",
                        label = list(text = "A high band"))
                 ))

1 Ответ

2 голосов
/ 19 марта 2020

Поскольку вы использовали hc_yAxis_multiples, вы должны указать конфигурации для каждой оси в этом списке. Когда вы снова вызываете hc_yAxis после этого, он не знает, на какую ось поместить ваш plotBand et c ..

Попробуйте что-то вроде этого:

hc <- highchart() %>% 
        hc_yAxis_multiples(
          list(lineWidth = 3,
               minorGridLineWidth = 0, 
               gridLineWidth = 0,
                 plotBands = list(
                   list(from = 10, to = 20, color = "rgba(68, 170, 213, 0.1)",
                        label = list(text = "A low band")),
                   list(from = 20, to = 25, color = "rgba(0, 0, 0, 0.1)",
                        label = list(text = "A medium band")),
                   list(from = 25, to = 30, color = "rgba(68, 170, 213, 0.1)",
                        label = list(text = "A high band"))
                 )
          ),
          list(minorGridLineWidth = 0,gridLineWidth = 0,
          showLastLabel = T, opposite = TRUE)) %>% 
        hc_title(text = "A nice chart") %>% 
        hc_chart(type = "column") %>% 
        hc_xAxis(categories = df1$month) %>% 
        hc_add_series(data = df1$values1) %>%
        hc_add_series(data = df1$values2, type = "spline", color = "#1FA67A", yAxis = 1)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...