我怎样才能在图中的 x 轴和 y 轴标签中获得完整范围?
How can I have the full range in the x- and y-axis labels in a plot?
我有两个变量,x
和 y
x = runif(8, 0, runif(1, 1, 5))
y = x^2
我想策划。请注意 x
(因此 y=x^2
)的范围并不总是相同的。
所以,命令
plot(x, y, pch=19, col='red')
生产
但是,我不想要图形周围的边框,所以我使用 bty='n'
参数进行绘图:
plot(x, y, pch=19, col='red', bty='n')
产生
恕我直言,这有点不幸,因为我希望 y 轴一直到 4,x 轴一直到 2。
因此,我在 plot
命令中使用了 xaxp
和 yaxp
参数:
plot(x, y, pch=19, col='red', bty='n',
xaxp=c(
floor (min(x)),
ceiling(max(x)),
5
),
yaxp=c(
floor (min(y)),
ceiling(max(y)),
5
)
)
产生
这个稍微好一点,但还是没有显示完整范围。此外,我认为默认轴标签使用类似于 1,2,3,4
或 0.5,1,1.5,2
的步骤,而不仅仅是一些任意分数,这很好。
我猜 R 有一些参数或机制以 "humanly" 方式绘制轴上的整个范围(0.5,1,1.5 ...),但我没有找到它。那么,我可以尝试什么?
尝试:
plot(x, y, pch=19, col='red', bty='n', xlim=c(min(x),max(x)),
ylim=c(min(y),max(y)), axes=FALSE)
axis(1, at=seq(floor(min(x)), ceiling(max(x)), 0.5))
axis(2, at=seq(floor(min(y)), ceiling(max(y)), 0.5))
或者,如果您希望对这些轴范围进行硬编码:
axis(1, at=seq(0, 2, 0.5))
axis(2, at=seq(0, 4, 0.5))
这是你想要的吗?
我有两个变量,x
和 y
x = runif(8, 0, runif(1, 1, 5))
y = x^2
我想策划。请注意 x
(因此 y=x^2
)的范围并不总是相同的。
所以,命令
plot(x, y, pch=19, col='red')
生产
但是,我不想要图形周围的边框,所以我使用 bty='n'
参数进行绘图:
plot(x, y, pch=19, col='red', bty='n')
产生
恕我直言,这有点不幸,因为我希望 y 轴一直到 4,x 轴一直到 2。
因此,我在 plot
命令中使用了 xaxp
和 yaxp
参数:
plot(x, y, pch=19, col='red', bty='n',
xaxp=c(
floor (min(x)),
ceiling(max(x)),
5
),
yaxp=c(
floor (min(y)),
ceiling(max(y)),
5
)
)
产生
这个稍微好一点,但还是没有显示完整范围。此外,我认为默认轴标签使用类似于 1,2,3,4
或 0.5,1,1.5,2
的步骤,而不仅仅是一些任意分数,这很好。
我猜 R 有一些参数或机制以 "humanly" 方式绘制轴上的整个范围(0.5,1,1.5 ...),但我没有找到它。那么,我可以尝试什么?
尝试:
plot(x, y, pch=19, col='red', bty='n', xlim=c(min(x),max(x)),
ylim=c(min(y),max(y)), axes=FALSE)
axis(1, at=seq(floor(min(x)), ceiling(max(x)), 0.5))
axis(2, at=seq(floor(min(y)), ceiling(max(y)), 0.5))
或者,如果您希望对这些轴范围进行硬编码:
axis(1, at=seq(0, 2, 0.5))
axis(2, at=seq(0, 4, 0.5))
这是你想要的吗?