如何使用R在散点图中使轴始终为方形?例如:
> plot(iris)
或
> plot(iris$Petal.Width, iris$Petal.Length)
我希望轴是方形的,即x和y轴的长度和刻度标签相同。
目前提出的答案不起作用:电话,
plot(iris$Petal.Width, iris$Petal.Length, xlim=c(0,10), ylim=c(0,10), asp=1)
生成:
不是方形,并且没有相同的轴刻度和刻度标签。 x刻度标签之间的空格必须相同,绘图应为方形,而不是矩形。
答案 0 :(得分:42)
您还需要在图形参数中设置pty="s"
以使绘图区域为正方形(与设备大小和限制无关):
par(pty="s")
plot(iris$Petal.Width, iris$Petal.Length, asp=1)
lines(2+c(0,1,1,0,0),3+c(0,0,1,1,0)) # confirm square visually
答案 1 :(得分:4)
首先,对我而言,情节已经comes out square(大图)。很明显,对你来说并非如此,你可能需要制作比屏幕更大的图。
因此,绘图的大小由输出区域的大小控制,即绘图窗口,图像文件或其他任何内容。使用Rstudio,您可以使用内置GUI指定绘图大小。如果您坚持使用基本R控制台,则需要手动执行导出。首先打开文件:
png("image.png", width=600, height=600)
这将以相同的比例打开工作目录中的图像文件。现在情节:
x = iris$Petal.Width
y = iris$Petal.Length
all = c(x,y)
range = c(min(all), max(all))
plot(x, y, xlim=range, ylim=range)
关闭文件:
dev.off()
结果: