2010-03-04 38 views
2

我有很多数据点的大图。当我在R中创建qplot时,图表自动适应窗口。即使我最大化窗口,图表仍然太小,细节丢失。我想将它保存为一个大的PNG,然后用图像查看器以1:1的分辨率查看某些区域(因为我无法在R中轻松放大)。为一系列值渲染图表并不是很方便,我想要有一个PNG并滚动并与同伴讨论,而不是预先生成一堆子图。创建大于窗口的qplots(与ggplot2)?

这可能吗?我有点期待如此,但一些帮助将不胜感激(我最近开始与R,所以我仍然找到我的方式)。

谢谢。

回答

4

一种方法是:

myfile <- tempfile()     # portable across OSs 
pdf(file=myfile, height=20, width=20) # 20x20 inches, adjust at will 
plot(....)        # or print(....) for lattice + ggplot2 
dev.off()        # finalize and close file 
cat("Look at", myfile, "\n") 

现在检查图表中的温度。文件只是用一个合适的pdf查看器创建的,可以随意缩放。

+0

谢谢。这确实产生了PDF,发现福昕在22MB文件上窒息(至少在100%CPU仍在处理5分钟之后)。我会给它更多的时间。 是否可以输出不是PDF而是PNG?图形查看器可以更轻松地处理大文件。如果没有,我可以接受这个解决方案。从另一个问题(http://stackoverflow.com/questions/2367328/how-to-change-current-plot-window-size-in-r)我了解了'dev.new',所以我会玩那个以及。 再次感谢。 – wishihadabettername 2010-03-04 03:38:47

+0

如果你想缩放,然后你不想像png那样有损格式。 – 2010-03-04 03:40:52

+0

PNG不是有损的,我猜你在考虑JPG。见http://en.wikipedia.org/wiki/Portable_Network_Graphics – wishihadabettername 2010-03-04 04:25:15

4

退房this previous question和答案:

基本上,你可以使用开罗基包装,打造svg文件,这些文件是基于矢量的,不是像素,然后我就可以在Inkscape编辑这些,我想你可以查看他们直接在Firefox(???)。

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() 

现在我不得不使用各种设置来让我的情节尽可能好,直到写入文件之前。 (关键设置似乎是点的大小,它会改变图形上点的大小,显然大小和dpi)

+0

谢谢,我今天试试。 – wishihadabettername 2010-03-04 12:33:50