这是我的问题:
我有一个大的数据集,在R中代表一个~500MB的对象,我用ggplot2绘制。
沿着 int 轴绘制了20百万个 num 值,这些值与5级因子相关联,用于颜色美学。
我想设置一个webapps,用户可以在这里使用不同的过滤器来显示这个数据集,这些过滤器依赖于因子来显示所有数据一次或者例如对应于1个因子级别的子集。
问题是当我写剧情时需要几分钟(约10分钟)
解决方案1:用户最好的方法是使用Shiny UI。但有没有办法让这个情节以某种方式预先写好,这要归功于ggplot2或闪亮的技巧,以便它可以快速显示出来?
解决方案2:如果没有闪亮,我本来就已经完成了不同的数据集图,我将不得不重建一个UI,让用户可以看到不同的图片。如果我这样做,我将不得不限制显示数据的可能用例。
期待建议和讨论
答案 0 :(得分:0)
考虑以下程序:
使用ggplot2
可以生成R对象。
plot_2_save <- ggplot()
可以通过
保存对象saveRDS(object, "file.rds")
并且在闪亮的server.R
中,您可以加载此数据
plot_from_data <- readRDS("path/.../file.rds")
我使用此设置进行某种文本分类,并将一个真正(非常)巨大的svm模型实现为闪亮服务器上的应用程序。
答案 1 :(得分:0)
理想情况下,你真的不需要绘制这么大的东西。如果您从数据库获取数据,那么只需编写一系列查询,这些查询将聚合数据库端的数据,并将非常少的数据拖动到shiny
中的输出。你的设计似乎很糟糕。
话虽如此,highcharter
包的作者确实在实施boost.js module
以帮助绘制数百万点。 https://rpubs.com/jbkunst/highcharter-boost
另请参阅bigvis
软件包,该软件包允许对大型数据集(1000万次观察)&#39; 进行探索性数据分析并构建由@Hadley Wickham https://github.com/hadley/bigvis撰写。关于包at this meetup