我有一个大型数据集,我在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)
axis(4, pretty(10*dataset$y,10) )
突然间,它拒绝添加我的新右轴。我怀疑这与R有关,看看轴是否以某种方式与数据集匹配,如果没有则拒绝它。如何让R忽略数据集并只打印我选择的任意轴?
答案 0 :(得分:7)
你要求的并不总是正确的实践,但你可以通过par(new=TRUE)
强迫它:
x <- 1:20
plot(x, log(x), type='l')
par(new=TRUE) # key: ask for new plot without erasing old
plot(x, sqrt(x), type='l', col='red', xlab="", yaxt="n")
axis(4)
x-axsis被绘制两次,但是因为你有相同的x坐标没有问题。第二个y轴被抑制并绘制在右侧。但标签显示您现在正在混合到不同的级别。
答案 1 :(得分:3)
R似乎并没有拒绝你的轴。你遇到了什么错误?你的命令将勾选图表(因为它使用第一个轴来定位它们)。我认为你想要的是以下内容:
> plot(x = dataset$x, y = dataset$y)
> axis(4, at = axTicks(2), label = axTicks(2) * 10)