我正在尝试调整绘图的大小以适合我的文档,但我很难将绘制的图表确定为正方形。
示例:
pdf(file = "./out.pdf", width = 5, height = 5)
p <- ggplot(mydata, aes(x = col1, y = col2))
print(p)
aux <- dev.off()
尽管x和y的限制是相同的,但结果中的图不是正方形的。我猜R使封闭面板为5x5“,但并不关心图的实际大小。
我如何解压我的图表?
发布于 2011-08-14 15:26:06
在ggplot
中,保持绘图纵横比的机制是向绘图中添加一个coord_fixed()
图层。这将保留绘图本身的纵横比,而不考虑实际边界框的形状。
(我还建议您使用ggsave
将结果图保存为pdf/png/etc,而不是pdf(); print(p); dev.off()
序列。)
library(ggplot2)
df <- data.frame(
x = runif(100, 0, 5),
y = runif(100, 0, 5))
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
发布于 2015-07-31 15:24:32
出于完整性考虑:如果您想要考虑完全不同的轴限制:
df <- data.frame(
x = runif(100, 0, 5000),
y = runif(100, 0, 5))
ratio.display <- 4/3
ratio.values <- (max(df$x)-min(df$x))/(max(df$y)-min(df$y))
plot <- ggplot(df, aes(x=x, y=y)) + geom_point()
plot + coord_fixed(ratio.values / ratio.display)
结果是:
https://stackoverflow.com/questions/7056836
复制