如何在R中绘图时使用静态轴值?

3
我正在使用以下代码:
x <-sample(1:100, 10);
y <-sample(1:100, 10);
plot(x,y);

但我想要创建一个静态值的图表,其中x和y轴的值是固定的。 问题在于有时候x轴(例如)在图表上显示的值范围从0到80,而其他情况下则根据x中的随机值从20到100不等。
我希望在所有情况下都能将x和y的值范围设置为0到100,并呈现在图表上,无论x和y矩阵中的实际数值如何。
有什么方法可以实现这一点吗?
提前感谢您!
3个回答

5
根据你所说的“值范围从1到100”的确切含义,以下两种方法之一应该能解决问题。
第一种方法是,默认情况下,plot会在两端扩展坐标轴限制4%。
第二种方法是,使用xaxs="i"yaxs="i"来抑制此行为。(有关更多详细信息,请参见?par。)
plot(x,y, xlim=c(0,100), ylim=c(0,100))

enter image description here

plot(x,y, xlim=c(0,100), ylim=c(0,100), xaxs="i", yaxs="i")

enter image description here


1

有两个函数可以使用,xlim()ylim()plot() 中,你可以使用它们手动设置坐标轴。


1
不确定,但也许你的意思是 xlimylimplot 的参数,更具体地说是 plot.default 的参数? - joran

1

首先,您必须找出边界 - 您可以选择一些(例如0、100),或使用range函数找出真正的边界。然后,您将使用xlimylim绘图选项。这是使用range找到真正边界的示例:

x1 <-sample(1:100, 10);
y1 <-sample(1:100, 10);
x2 <-sample(1:100, 10);
y2 <-sample(1:100, 10);

par(mfrow=c(1, 2))
range_x <- range(x1, x2); // find the range that spans all the data, for x
range_y <- range(y1, y2); // and for y
plot(x1, y1, xlim = range_x, ylim = range_y);
plot(x2, y2, xlim = range_x, ylim = range_y);

但是OP要求“我希望在所有情况下,x、y都有一个从0到100的值范围在图中”。这并不能实现这一点... - Josh O'Brien

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