如何绘制"多个"在R中突破y数据范围的曲线?

时间:2015-08-05 06:57:07

标签: r plot

gap.plot中的函数plotrix用于绘制想要在y轴或x轴上放置间隙的图形。但是,我似乎无法在曲线中添加曲线。这是一个玩具可重复的例子。

xx = c(100, 10,9,8,7,0)
yy = c(88, 9,9,7,7,7)
tt = 1:6;
gapxy = c(12, 85)
gap.plot(tt, xx, gap=gapxy, ylim=c(0,100), ytics=c(1:11, 86:100) )
lines(tt, yy)

此处的关键问题是yy数据和xx数据的值存在于差距中。这会导致警告消息。但是,更令人担忧的是,yy变量的最大值为88,但在差距图中添加yy会使其在页面外的最大值。无论如何都要纠正这个。我不一定坚持使用间隙图,但确实要求我们坚持使用基本软件包没有ggplot2解决方案。我已尝试使用add = T作为选项替换第二个gap.plot调用行,如文档中所示,但这导致yy的上半部分没有绘制。

gap.plot(tt, yy, gap=gapxy, add=T, type='l', ylim=c(0,100))

1 个答案:

答案 0 :(得分:3)

线条未显示的原因是gap.plot没有正确设置坐标系,如

所示
> par("usr")
[1]  0.80  6.20 -1.08 28.08

这意味着x轴的范围应该在[0.8, 6.2]之间,但是y轴的范围在[-1.08, 28.08]之间,即使情节使它看起来像是一直到100。

我建议您使用R的标准工具设置一个双面板图,而不是使用gap.plot。它需要更多的代码,但是直截了当。

par(mfrow=2:1, mar=rep(.5, 4), oma=c(3,3,1,1))
plot(tt, xx, ylim=c(86, 100), axes=FALSE)
axis(2); box()
lines(tt, yy)
plot(tt, xx, ylim=c(1, 11))
lines(tt, yy)

Plot with split y-axis