在R中为一个数据集绘制具有不同比例的轴

时间:2010-02-20 01:09:30

标签: 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)
axis(4, pretty(10*dataset$y,10) )

突然间,它拒绝添加我的新右轴。我怀疑这与R有关,看看轴是否以某种方式与数据集匹配,如果没有则拒绝它。如何让R忽略数据集并只打印我选择的任意轴?

2 个答案:

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