在ggplot2
中,可以轻松地将图形保存到R对象中。
p = ggplot(...) + geom_point() # does not display the graph
p # displays the graph
标准函数plot
将图形作为void函数生成并返回NULL。
p = plot(1:10) # displays the graph
p # NULL
是否可以将plot
创建的图形保存在对象中?
4条答案
按热度按时间ikfrs5lh1#
基本图形直接在设备上绘制。
你可以用
1-
recordPlot
2-最近引入的
gridGraphics
package,用于将基本图形转换为它们的网格等价物这里有一个简单的例子
nwlls2ji2#
我通过使用函数而不是对象解决了这个问题。例如,假设我们想要比较两个具有不同参数的beta分布。我们可以运行:
并将图保存为 * 函数 * 而不是对象。
接下来,我们可以通过简单地将两个图作为函数而不是对象来调用每个图。
绘制第一个图和
绘制第二个。
f3temu5u3#
如果您不想直接更改所创建对象的值,可以使用
pryr
包的活动绑定特性。每次您在控制台上键入
a
,图形将重新打印在屏幕上。%<a-%
操作符每次都会重新运行脚本(对于一个图,我认为这不是问题)。因此,基本上每次使用a
时,代码都会重新运行,从而生成您的图形,当然您可以操作(在顶部覆盖另一个图)或使用png
保存。但是,值本身不会存储在a
中。该值仍为NULL。我不知道上面的是不是你正在寻找的,但它可能是一个可以接受的解决方案。
pbgvytdp4#