从R创建可编辑的图

时间:2010-01-12 10:49:25

标签: graphics r ggplot2

我在R中创建了一系列情节(我正在使用ggplot2,但这不是必需的)我希望能够保存我的输出,以便我可以编辑它以供更长时间使用,例如,我可能想要移动传说,或调整颜色等我已经看到ggplot2有一个保存命令,但似乎产生pdf或位图,这两者都不是特别可编辑

其他人如何做到这一点?有什么好主意吗?

以下是制作样本图的一些示例代码;

library(ggplot2)
dataframe<-data.frame(fac=factor(c(1:4)),data1=rnorm(400,100,sd=15))
dataframe$data2<-dataframe$data1*c(0.25,0.5,0.75,1)
dataframe
testplot<-qplot(x=fac, y=data2,data=dataframe, colour=fac, geom=c("boxplot", "jitter"))
testplot

由于

保罗。

4 个答案:

答案 0 :(得分:7)

其他可编辑格式:

请查看help(devices)以了解可用的其他格式:这些格式包括svgpictexxfig,所有这些格式都可以编辑到更大或更小的范围。

请注意,可以编辑PDF,例如使用适用于Apple OSX的Omnigraffle工具。

记录绘图数据的其他方法:

此外,您可以将R的命令记录到图形子系统以便稍后重复 - 请查看dev.copy

 Most devices (including all screen devices) have a display list
 which records all of the graphics operations that occur in the
 device. 'dev.copy' copies graphics contents by copying the display
 list from one device to another device.  Also, automatic redrawing
 of graphics contents following the resizing of a device depends on
 the contents of the display list.

使用Rscript创建可重复,可编辑的绘图:

我通常采取第三种策略,即将我的R会话复制到Rscript文件中,我可以重复运行并调整绘图命令,直到它完成我想要的操作:

#!/usr/bin/Rscript
x = 1:10
pdf("myplot.pdf", height=0, width=0, paper="a4")
plot(x)
dev.off();

答案 1 :(得分:4)

使用ggplot和lattice,您可以使用save将绘图对象保存到磁盘,然后再load将其保存并修改它。例如:

save(testplot, file = "test-plot.rdata")

# Time passes and you start a new R session
load("test-plot.rdata")
testplot + opts(legend.position = "none")
testplot + geom_point()

答案 2 :(得分:4)

感谢您的回答,我已经玩过这个,在我的朋友Google的帮助下,我找到了Cairo包,它允许创建svg文件,然后我可以在{{3 }}

library(Cairo)
Cairo(600,600,file="testplot.svg",type="svg",bg="transparent",pointsize=8, units="px",dpi=400)
testplot
dev.off()
Cairo(1200,1200,file="testplot12200.png",type="png",bg="transparent",pointsize=12, units="px",dpi=200)
testplot
dev.off()

现在我只需要使用各种设置来使我的情节在写入文件之前尽可能好。

答案 3 :(得分:0)

右键单击输出图上的鼠标 复制为图元文件 然后将绘图保存到word文档中(右键单击编辑图片以隐藏到Microsoft Office绘图对象的绘图)