在R中制作方轴

时间:2013-02-01 22:49:30

标签: r graphics plot

如何使用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)

生成:

enter image description here

不是方形,并且没有相同的轴刻度和刻度标签。 x刻度标签之间的空格必须相同,绘图应为方形,而不是矩形。

2 个答案:

答案 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

tall long

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

结果:

enter image description here