为R中的一个数据集绘制不同比例的轴
我有一个用R绘制的大数据集,我想在图的每一侧有一个轴,以两种不同的比例显示数据。例如,在左垂直轴上,我想直接绘制数据(例如,绘制(y~x)),在右轴上,我想对左轴进行线性缩放。(例如,绘图(y*20~x) 因此,将只显示一个数据集,但轴将显示这些数据点的不同含义 我尝试了以下方法:为R中的一个数据集绘制不同比例的轴,r,statistics,graph,plot,R,Statistics,Graph,Plot,我有一个用R绘制的大数据集,我想在图的每一侧有一个轴,以两种不同的比例显示数据。例如,在左垂直轴上,我想直接绘制数据(例如,绘制(y~x)),在右轴上,我想对左轴进行线性缩放。(例如,绘图(y*20~x) 因此,将只显示一个数据集,但轴将显示这些数据点的不同含义 我尝试了以下方法: plot(x = dataset$x, y = dataset$y) axis(4, pretty(dataset$y,10) ) > plot(x = dataset$x, y = dataset$y) &
plot(x = dataset$x, y = dataset$y)
axis(4, pretty(dataset$y,10) )
> plot(x = dataset$x, y = dataset$y)
> axis(4, at = axTicks(2), label = axTicks(2) * 10)
这将正确打印一个新的右轴,其比例与默认左轴相同。(基本上没有用处,但它可以工作)但是,如果我做了这个微小的更改:
plot(x = dataset$x, y = dataset$y)
axis(4, pretty(10*dataset$y,10) )
突然,它拒绝添加我的新右轴。我怀疑这与R有关,R查看轴是否以某种方式与数据集匹配,如果不匹配,则拒绝它。我如何让R忽略数据集,只打印我选择的任意轴?你要求的并不总是正确的做法,但你可以通过
par强制它(new=TRUE)
:
xR似乎没有拒绝您的轴。您得到了什么错误?您的命令将使勾号远离图形(因为它使用第一个轴来定位它们)。我认为您需要的是以下内容:
plot(x = dataset$x, y = dataset$y)
axis(4, pretty(dataset$y,10) )
> plot(x = dataset$x, y = dataset$y)
> axis(4, at = axTicks(2), label = axTicks(2) * 10)
您还可以在第二次调用plot()
时使用参数axes=F
来抑制x轴的双重绘图。这很完美,优雅地解决了我的问题。我的问题不是记号画错了,而是我需要在=axTicks(2)处重新标记它们表示从绘图侧获取新的轴标记=2;label=axTicks(2)*10表示从按10缩放的“at”标记创建标签。对吗?