繁体   English   中英

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

[英]R: Creating graphs with two y-axes

我想在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测量图形。 事实上,第二张图是在图上,但缩放比例很小,你无法看到它。

不确定我是否违反了一些礼仪规则,之前从未上传过图像,因此不太确定如何做到最好。

任何帮助将不胜感激!

谢谢

麦克风

轴测量不正确

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

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")

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM