保存为PNG时,匹配两个不同ggplots的绝对切片大小

时间:2014-10-31 02:20:07

标签: r ggplot2

使用ggplot2geom_tile为文档创建PNG文件时,有没有办法将图块的大小设置为某个绝对单位(cm,pt)?我有多个图,当插入文档时,没有完全相同的图块大小。当然我可以手动改变图的宽度和高度,所以瓷砖几乎相互匹配,但那是作弊......

x轴和y轴上的变量名称具有不同的长度。因此,我想设置整个绘图的尺寸(包括所有标签),而不是将绘图区域的尺寸设置为某个固定值,可能通过scale_x/y_discrete?或者,可以在使用gridExtragtable调整单个图表的大小后对其进行提取?

# Create some example data.
set.seed(1)
dt1 <- data.table(x=letters[1:5], y=rep(c("aaaaaaaaa", letters[2:3]), rep(5,3)),
                  value=runif(5*3))

dt2 <- data.table(x=letters[1:4], y=rep(letters[1:4], rep(4,4)),
                  value=runif(4*4))

# Make two tile plots.
p1 <- ggplot(dt1, aes(x, y, fill=value)) +
        geom_tile() +
        coord_equal(); p1

p2 <- ggplot(dt2, aes(x, y, fill=value)) +
        geom_tile() +
        coord_equal(); p2

# Save tile plots to drive.
# ggsave("p1.png", p1, width=5)
# ggsave("p2.png", p2, width=5)

这是插入了PNG图像的文档的屏幕截图,请注意标签大小相同:

Screenshot of document

这就是我所追求的:两个图像中红色箭头之间的绝对距离是相同的,没有调整标签大小。

Edit with MS Paint...

任何建议都非常感谢!

0 个答案:

没有答案