我遇到了一个问题,在绘制一定数量的系列时,Highcharts / highcharteR似乎忽略了单个点的颜色。
可复制的示例:
library(highcharter)
ll <- list()
for (i in 1:50) {
ll[[i]] <- list(
name = i,
data = list_parse(
data.frame("x" = rep(i, 3),
"y" = sample(1:10, 3, replace=TRUE),
"z" = sample(1:5, 3, replace=TRUE),
"color" = sample(c("green","red","grey"), 3))
)
)
}
highchart() %>%
hc_chart(type = "bubble") %>%
hc_add_series_list(ll)
运行上述命令时,您会看到随机颜色(按系列分配),而不是显式指定的绿色/红色/灰色。将最后一行更改为hc_add_series_list( ll[1:49] )
将显示正确的指定颜色。我认为这是最终列表项的问题,但将最后一行更改为hc_add_series_list( ll[2:50] )
也会得到正确的结果。
生成仅包含49个项目的列表(即,将for (i in 1:50)
更改为for (i in 1:49)
不会出现此问题(而生成包含51个项目的列表则没有此问题。似乎绘制50个或更多序列是某种割礼-关闭。这是highcharts / JS的限制吗?
原来是highcharteR的boost
存在问题,默认情况下已启用。不知道该怎么做,但是由于this GitHub comment,我发现添加%>% hc_boost(enabled = FALSE)
可以解决问题。
PS。感谢@ raf18seb测试此问题是否在纯JS中仍然存在(不是)。