Highcharts/highcharteR 绘制 50+ 系列时忽略点颜色
Highcharts/highcharteR ignores point color when plotting 50+ series
我已经 运行 解决了 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)
当 运行 执行上述操作时,您会看到随机颜色(按系列分配)而不是明确指定的 green/red/grey 颜色。将最后一行更改为 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 中仍然存在(它不会)。
我已经 运行 解决了 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)
当 运行 执行上述操作时,您会看到随机颜色(按系列分配)而不是明确指定的 green/red/grey 颜色。将最后一行更改为 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 中仍然存在(它不会)。