【问题标题】:R highcharter - grouped categories - missing label for group with one value onlyR highcharter - 分组类别 - 只有一个值的组缺少标签
【发布时间】:2018-05-30 12:53:35
【问题描述】:

R 代码:

setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) 
options(stringsAsFactors = FALSE)
rm(list = ls()) 
if (!require("pacman")) install.packages("pacman")
pacman::p_load("dplyr","tidyr","highcharter")

raw_data <- read.csv("results.csv")
DT <- data.table(raw_data)

cols <- c('Person','ABC_Capability','ABC_Sub.capability','Leadership.Facet','Facet.Score')
DT <- DT[, cols, with = FALSE]
names(DT) <- c('Person','Capability','Sub_Capability','SVL','Facet_Score')

DT <- dcast(DT, Capability + Sub_Capability + SVL ~ Person, 
            value.var = c('Facet_Score'))

DT1 <- DT %>% 
  group_by(name = Sub_Capability) %>% 
  do(categories = .$SVL) %>% 
  list_parse()


highchart() %>% 
  hc_chart(type = "bar") %>% 
  hc_title(text = "Some Title") %>%
  hc_add_series(name="A", data = DT$Joan) %>% 
  hc_add_series(name="B", data = DT$Shane) %>%
  hc_add_series(name="C", data = DT$Simon) %>%
  hc_xAxis(categories = DT1)

输出:

我尝试使用较小的数据集,并意识到每次组中只有一个值。标签被截断。例如:培养人 > 赋权

任何帮助将不胜感激。

【问题讨论】:

  • 我对 R 了解不多,但似乎与此演示中提出的问题相同:jsfiddle.net/BlackLabel/eLf0rn2q 如果您在第二级只有一个类别,您应该记住代表它作为只有一个元素的数组。如果你传递一个字符串,JS 会将它解释为一个字符数组。

标签: r highcharts bar-chart r-highcharter


【解决方案1】:

就像 Kamil Kulig 提到的,您可以尝试将 categories 设为 array 而不是 vector 并且它有效为了我。使用您提供的示例代码,它将是:

DT1 <- DT %>% 
  group_by(name = Sub_Capability) %>% 
  # store SVL as array
  do(categories = array(.$SVL)) %>% 
  list_parse()

新更新

需要使用array() 函数将向量转换为数组,即使您没有使用分组类别而只是想重命名刻度标签,即

highcharter::hchart(mtcars[1, ],
                    "column", name = "MPG",
                    highcharter::hcaes(x = 0, y = mpg),
                    showInLegend = F) %>%
    # x axis format
    highcharter::hc_xAxis(title = list(text ="Car Name"),
                          # relabel x axis tick to the name of the cars
                          categories = array(rownames(mtcars)[1]))

然后轴刻度标签将显示汽车的名称。

如果您只使用 categories = rownames(mtcars)[1]) 而不是将其转换为数组,则 x 轴标签将无法正确显示:

这里的刻度标签只是 M 而不是 Mazada RX4

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2020-11-19
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多