R:使用两个y轴创建图形

时间:2014-01-27 07:51:25

标签: r graph

我希望在R中的同一个图上显示两个图形,其中两个图形具有非常不同的比例,即一个从-0.001到0.0001,另一个从0.05到0.2。

我找到了这个链接http://www.statmethods.net/advgraphs/axes.html

表示如何在同一个地块上显示两个y轴,但我遇到了麻烦 我的代码如下:

      plot(rateOfChangeMS[,1],type="l",ylim=c(-0.01,.2),axes = F)
      lines(ratios[,1])
      x = seq(-0.001,0.0001,0.0001)
      x2 = seq(0.05,0.2,0.01)
      axis(2,x)
      axis(4,x2) 

我遇到的问题是,尽管R显示了两个轴,但它们并不像我想的那样彼此相邻,并附有结果图。左轴用小范围测量图形,而右边用0.05到0.2测量图形。事实上,第二张图是在图上,但缩放比例很小,你无法看到它。

不确定是否存在我违反的礼仪规则,之前从未上传过图片,因此不太确定如何做到这一点。

非常感谢任何帮助!

由于

麦克

Incorrect Axis measurement

1 个答案:

答案 0 :(得分:2)

由于您未提供可重现的示例或代表性数据集,因此这是部分答案。

set.seed(1)
df <- data.frame(x=1:100, 
                 y1=-0.001+0.002/(1:100)+rnorm(100,0,5e-5),
                 y2=0.05+0.0015*(0:99)+rnorm(100,0,1e-2))

ticks.1 <- seq(-0.001,0.001,0.0001)
ticks.2 <- seq(0.05,0.2,0.01)

plot(df$x, df$y1, type="l", yaxt="n", xlab="X", ylab="", col="blue")
axis(2, at=ticks.1, col.ticks="blue", col.axis="blue")
par(new=T)
plot(df$x, df$y2, type="l", yaxt="n", xlab="", ylab="", col="red")
axis(4, at=ticks.2, col.ticks="red", col.axis="red")

左轴被压缩的原因是两个轴的尺寸相同。你可以通过基本上叠加两个完全不同的图来解决这个问题(毕竟这是两个轴的作用)。顺便提一下,像这样的双轴不是可视化数据的好方法。它产生了一种极具误导性的视觉印象。