加速ggplot2:预渲染图是否有意义?

max*_*eld 8 performance plot rendering r ggplot2

我正在构建一个交互式函数,它将重复构建和绘制相当复杂的ggplot2图.

用户提供输入(实际上是PCA加载矩阵的旋转角度),我想尽快向他们展示旋转结果.

不幸的是,用ggplot2绘制情节非常缓慢.

注意:

  • 重点不是很多数据(<100个数据点左右),所以预处理无济于事(这就是这个以及很多其他SO ggplot2性​​能帖子的问题).
  • 我现在必须坚持使用ggplot2.(我知道,我知道,ggobi等等......).
  • 知道该范围的可能的输入提前(0-360):这是一个非常有限的.
  • 已经缓存了ggplot生成函数memoise,但这似乎没有多大帮助; 问题似乎是图形设备上的实际绘图.
  • (我也注意到RStudio的内部图形设备特别迟钝).

所以,我想,也许我想以某种方式预渲染所有必要的图,可能是通过将svg()图形设备保存到文件或其他东西,然后根据需要绘制这些缓存版本.

  • 在1-10的范围内,一个想法是多么愚蠢?
  • 有更好的想法吗?
  • 这甚至会加速绘图,还是图形设备仍然会成为瓶颈?
  • 为什么我们不能在R中进行硬件加速:(.

更新

  • 这不是托管软件(现在),只是在本地工作,它应该可以在任意数量的客户端和任意数量的平台上运行.
  • 我知道(快得多)ggvisggobi,但这些现在不是一个选项(开发带宽太小).
  • 实际上有几个相对复杂的嵌套(grid.arranged)绘图函数,而且memoise在某些时候它们是d - 没有明显的速度增加.
  • 在外部文件查看器中打开预渲染文件似乎会危及跨平台的吸引力 - 对吗?