32

如何使用 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 刻度标签之间的空间必须相同,并且绘图应该是正方形,而不是矩形。

4

2 回答 2

53

您还需要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

高的长

于 2013-02-02T00:57:07.520 回答
6

首先,对我来说,情节已经是方形的(大图)。显然对你来说情况并非如此,无论如何你可能需要使绘图大于屏幕。

因此,绘图的大小由输出区域的大小控制,即绘图窗口、图像文件或其他任何内容。使用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()

结果:

在此处输入图像描述

于 2013-02-01T23:09:00.803 回答