【发布时间】:2020-05-18 16:55:49
【问题描述】:
我正在 R 中生成一个包含很多行的热图。
TL;DR 我如何获得 R 中绘图的实际大小?
df=data.frame(one=1:100,two=101:200,three=201:300)
names=1:100
names=paste0("Cell",names)
rownames(df)=(names)
pheatmap(df,scale="row")
pheatmap(df,scale="row",cellheight = 10)
更改单元格高度可以让我们读取行名,但现在图像不适合窗口!
在这个例子中,我使用的是pheatmap,但也遇到了其他绘图生成包的问题。
虽然我已经开始期望 R 会出现这种令人沮丧的行为,并且通过反复试验可以为情节制作适当大小的图像,但这似乎是我应该能够从程序中获得的东西?
有没有办法自动获取绘图的尺寸,以便我可以为其创建正确大小的 PDF 或 PNG?
【问题讨论】:
-
由你来告诉 R 你想要多大的绘图设备。您可以将绘图窗口的大小指定为与您的 pdf 或 png 相同的大小。
-
但你的问题的简短答案是
dev.size(units = "px") -
@AllanCameron 当我制作像
png("myplot.png")这样的图像设备时,dev.size就是绘图设备的大小,与我要放置的绘图的实际大小无关在里面。即我的情节在 72dpi 时高约 1200 像素,但我通过反复试验发现了这一点。 -
我明白了。 R 中的大多数绘图都是以相对比例绘制的,因此它们会根据窗口大小调整大小。
pheatmap必须以绝对值指定绘图。我去看看。