我正在尝试使用 highcharter 包(> 50k 行数据)在散点图中绘制大型数据集,经过阅读后我发现该highchart2()
函数包括来自 highcharts 的 boost 模块,这在绘制大量数据时应该会大大提高性能。举个例子:
library(highcharter) # I'm using the latest version from github (0.5.0.9999)
x <- data.frame(a = rnorm(5000),
b = rnorm(5000),
cat = c(rep("Yes", 2500), rep("No",2500)))
highchart() %>%
hc_add_series(data = x, type = "scatter", hcaes(x=a, y=b, group=cat))
这应该正确地创建一个散点图,但由于数据量已经存在一些性能问题。这就是为什么我切换到highchart2()
但令我惊讶的是,该图在尝试时没有显示任何数据点:
highchart2() %>%
hc_add_series(data = x, type = "scatter", hcaes(x=a, y=b, group=cat))
经过更多的搜索和阅读后,我发现使用list_parse2()
绘图时渲染速度要快得多,所以我尝试了这个:
highchart2() %>%
hc_add_series(data = list_parse2(x), type = "scatter", hcaes(x=a, y=b, group=cat))
当然它不起作用,因为我改变了输入数据的结构,并剥离了我给的变量的名称hcaes()
。然后,当我尝试这个时:
highchart2() %>%
hc_add_series(data = list_parse2(x), type = "scatter")
我得到了一个非常快速的渲染图,但我无法让分组工作在每个点上区分“是”和“否”,所以所有点现在都是相同的颜色。
所以我的问题是,我怎样才能有效地用 highcharter 绘制大型数据集,同时保持将变量分配给“组”参数的能力hcaes()
?
在此先感谢您的帮助。