[英]R highcharter - grouped categories - missing label for group with one value only
代码:
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)
输出:
我尝试使用较小的数据集并意识到每次组中只有一个值时。 标签被截断。 例如:培养人才 > 赋权
任何帮助,将不胜感激。
就像 Kamil Kulig 提到的那样,您可以尝试将类别设为数组而不是向量,它对我有用。 使用您提供的示例代码,它将是:
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 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.