两个图形之间的界限

时间:2017-02-26 22:12:49

标签: r ggplot2

我需要制作以下类型图表

enter image description here

我一直在尝试使用ggplot2,做两个图形,粘贴它们并放线。但是,我不能将行y = 10。 y = 10行必须遍历整个图形,如图像所示。

他所制作的代码如下

<a>

更新:使用评论中的链接,我到达

    library(ggplot2)
    require(gridExtra)


    #test value

    x=0:1:15
    y=0:1:15
    z=15:1:0

    #join values

    ma<-data.frame(x,y)
    ma1<-data.frame(z,y)

    #define graph

    a<-ggplot(data=ma)+geom_line(mapping=aes(x,y))
    b<-ggplot(data=ma1)+geom_line(mapping=aes(z,y))

    #join graph
    c<-grid.arrange(a, b, ncol=2)

    #try insert line y=10

    c + geom_hline(yintercept = 10)



[![enter image description here][2]][2]

Maybe using facets is possible, anyway All help is welcome

enter image description here

然而,我获得了l z r t测试的位置。 任何人都知道如何更准确地获得这些职位? 大家好

1 个答案:

答案 0 :(得分:2)

您需要将水平线添加到ggplots而不是grid.arrange。

a <- ggplot(data=ma)+geom_line(mapping=aes(x,y)) 
b <- ggplot(data=ma1)+geom_line(mapping=aes(z,y)) 
h <- geom_hline(yintercept = 10)

#join graph
grid.arrange(a+h, b+h, ncol=2)

您还可以将线条类型设置为获取虚线,并将主题设置为bw以接近所需的图形。

h2 <- geom_hline(yintercept = 10, lty=5)
bw <- theme_bw()

#join graph
grid.arrange(a+h2+bw, b+h2+bw, ncol=2)

原则上,我不会使用水平线遍历这些图,但上面发布的评论提供了有关如何执行此操作的适用链接。