在R中将ggplot的比例设置为1:1

4

我想在以下图表中设置x轴和y轴具有相同的比例距离(即,x轴上的0.1与y轴上的0.1长度相同)。 有什么建议吗? 谢谢。

df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))

p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))

p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

grid.arrange(p, p,ncol=1)

p

enter image description here


1
安迪提出了一个想法。您也可以通过在绘图设备中大致将高度加倍来处理此问题,例如:png("文件名", width = 400, height = 800) - Tyler Rinker
2
你只需要执行par(asp=1),一切都设置好了...哦不,因为这不是基本图形,它已经使用了25年的方式,这是ggplot,你所学的一切都是错误的! - Spacedman
2个回答

12

你需要使用coord_equal()

df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))
p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))
p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

p + coord_equal()

在此输入图像描述


1

您需要设置您的图形设备的宽度和高度,其中高度=2*宽度

library('ggplot2')
library('gridExtra')
df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))

p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))

p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

w <- 550
png("test.png", width=w, height=2*w, units="px")

grid.arrange(p, p,ncol=1)

dev.off()

test.png


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接