知道ggplot2图的比例

时间:2017-07-06 11:02:02

标签: r ggplot2

我通常使用ggplot2设备保存png的地块。输出的宽度和高度由函数的参数设置。当图形的“自然比例”不适合设备的比例时,绘制空白区域。为了避免这种情况并使用整个定义的画布,必须知道绘图的比例。 ¿有没有办法在没有反复试验的情况下找出这个值?

此代码可用作示例:

x <- seq(from = 0, to = 1, by = 0.1)
y <- seq(from = 1, to = 2, by = 0.1)
df <- expand.grid(x = x, y = y)
df <- cbind(df, z = rnorm(ncol(df), 0, 1))

p <- ggplot(df, aes(x,y, fill = z)) + geom_raster() + coord_fixed()

ppi <- 300

#Value 0.4 is used to change inches into milimeters
png("plot.png", width = 16*0.4*ppi, height = 20*0.4*ppi, res = ppi)
print(p)
dev.off()

可以看到在顶部和底部添加了一些空格来填充png文件。这可以通过使用不同于20/16的比例来轻松纠正,这不是最佳的。

1 个答案:

答案 0 :(得分:0)

您可以修改ratio内的coord_fixed() arg:

p <- ggplot(df, aes(x,y, fill = z)) + 
       geom_raster() + 
       coord_fixed(ratio = 20/16)

或者,您可以在aspect.ratio

中指定theme()
p <- ggplot(df, aes(x,y, fill = z)) + 
       geom_raster() + 
       theme(aspect.ratio = 20/16)

结果是一样的:

enter image description here