aef25u
谢谢bjt ,已解决(不是常规解决方法,而是靠自动保存图片间接实现的,我的使用环境是windows下的R2.9.1)
我在R中搜索help(windows),在帮助文档中See Also点链接savePlot,利用savePlot函数解决的
帮助文档中的解释Usage:
----------------------------------
savePlot(filename = "Rplot",
type = c("wmf", "emf", "png", "jpg", "jpeg", "bmp",
"tif", "tiff", "ps", "eps", "pdf"),
device = dev.cur(),
restoreConsole = TRUE)
----------------------------------
为了说清,我把我的实现过程说一下吧。
1、首先我自已写了个输出图像的outline()函数。图像的生成统一通过调用这个函数实现。
2、在程序中凡是调用了outline()函数后,再加savePlot()函数就可以了。
如:
.......
#outline(A1,Ti)需2个变量,1个是数据框,另1个是标题,标题Ti通过paste()联接字符与变量来灵活生成标题
Ti<-paste(a,"**",b,"**")
outline(A1,Ti)
#输出图像的各称,扩展名为png
Tb<-paste(Ti,".png")
#自动保存图像
savePlot(filename = Tb,
type = "png",
device = dev.cur(),
restoreConsole = TRUE)
........
3、最终不仅保存了图像,在R主程序窗口也保存了各图像的窗口,初始的时候是重合在一起的,用鼠标拖动就能看到其他图像了。
另外查函数的时时候发现了个win.graph()函数,可以实现图像“横纵坐标”的横纵比。
只要在绘图使用plot()函数前加上win.graph(7,5)可实现横纵比7/5(一般论文的图片都按这个比率标准),这个函数对自动保存图像的外观还是比较重要的。在我的例子是放在outline()函数内的plot()函数上一句的位置,如想有更直观的认识,请查看本论坛我求助的另一个帖子《如何让barplot画的柱条正中间对齐x轴刻度线》,内有自定义的outline()绘图函数