HighcharteR: почему hc_series () не показывает мои категориальные данные? - PullRequest
2 голосов
/ 14 апреля 2020

Я использую много HighcharteR, но каким-то образом попал в засолку. Рассмотрим следующий пример:

library(highcharter)

list1 <- list(
          name = "series 1",
          data = list_parse(
                   data.frame("x" = c(1,2,3),
                              "y" = c(4,5,6),
                              "z" = c(1.5,1.2,0.5)))

)

highchart() %>%
  hc_chart(type = "bubble") %>%
  hc_series(list1)

Когда я запускаю это, все хорошо - но когда я запускаю тот же график, но использую категориальные данные для x и y, ничего не отображается:

list2 <- list(
          name = "series 1",
          data = list_parse(
                   data.frame("x" = c("Q1","Q2","Q3"),
                              "y" = c("factor1","factor2","factor3"),
                              "z" = c(1.5,1.2,0.5)))
)

highchart() %>%
  hc_chart(type = "bubble") %>%
  hc_xAxis(type = "category") %>%
  hc_yAxis(type = "category") %>%
  hc_series(list2)

Я попытался явно установить type = "category" для обеих осей (хотя я думаю, что в каждой серии ищется значение name), а также явно установить категории с помощью categories = c("Q1","Q2","Q3"), но ни одно из них не изменилось что-нибудь ...

Это не дает мне никакого сообщения об ошибке, поэтому я не уверен, что здесь происходит ... извинения, если решение очевидно (я, например, не вижу его после попытки в течение часа!). Спасибо!

1 Ответ

1 голос
/ 14 апреля 2020

Один из способов добиться этого - сохранить x и y цифра c, а затем добавить категории. Категории будут назначены, начиная с 0, так что 0,1,2 в вашем случае, но вы можете обойти это, добавив пустую категорию в 0 и установив min в 1 и max в 3

list2 <- list(
  name = "series 1",
  data = list_parse(
    data.frame("x" = c(1, 2, 3),
               "y" = c(1, 2, 3),
               "z" = c(1.5,1.2,0.5)))
)

highchart() %>%
  hc_chart(type = "bubble") %>%
  hc_series(list2) %>% 
  hc_xAxis(categories = c("", "Q1","Q2","Q3"),
           min = 1, max = 3) %>% 
  hc_yAxis(categories = c("", "factor1", "factor2", "factor3"),
           min = 1, max = 3)

enter image description here

...