R 了解ggplot2绘图的比例

R 了解ggplot2绘图的比例,r,ggplot2,R,Ggplot2,我通常使用png设备从ggplot2保存绘图。输出的宽度和高度由函数的参数设置。当图形的“自然比例”与设备的比例不匹配时,将绘制空白区域。为了避免这种情况并使用整个定义的画布,必须知道绘图的比例。有没有一种不用反复试验就能找出这个值的方法 此代码可用作示例: 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 &l

我通常使用
png
设备从
ggplot2
保存绘图。输出的宽度和高度由函数的参数设置。当图形的“自然比例”与设备的比例不匹配时,将绘制空白区域。为了避免这种情况并使用整个定义的画布,必须知道绘图的比例。有没有一种不用反复试验就能找出这个值的方法

此代码可用作示例:

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

x您可以在
coord\u fixed()内修改
比率
arg

结果是一样的:

我的意思是,当坐标比固定时,“自然比例”应考虑标题、图例、刻面条带等的大小。如果在本图中坐标比固定为1,且宽度比和高度比固定为1,由于轴标签、图例等原因,png文件中将有一个空白区域。
p <- ggplot(df, aes(x,y, fill = z)) + 
       geom_raster() + 
       coord_fixed(ratio = 20/16)
p <- ggplot(df, aes(x,y, fill = z)) + 
       geom_raster() + 
       theme(aspect.ratio = 20/16)