在单个图上将线图(第一个数据集)的facet_wrap与点图(第二个数据集)的facet_wrap相结合

时间:2014-06-16 15:34:02

标签: r ggplot2 facet-wrap

我有两个数据集,我称之为1.data 2.data_other

1.data

data <- read.table(text = "Me EE  PE   DE    TE    DEE   CE
1   1  1 4.5 2000  0.50 0.2547 0.69
2   1  2 2.4 3000    NA 0.5896 2.56
3   1  3 6.5 2345 15.24     NA 1.85
4   1  4  NA   NA 18.23 1.2594 2.06
5   2  1 2.6   NA 12.25 1.5943 2.34
6   2  2  NA 3145 10.25     NA   NA
7   2  3 2.7 4235    NA     NA 2.90
8   2  4  NA   NA  6.32 2.5990 3.18
9   3  1 3.5   NA  8.25 2.9339 3.46
10  3  2 3.8   NA    NA     NA   NA
11  3  3  NA   NA    NA 3.6037 1.58
12  3  4 4.4 4325    NA 3.9386 4.30
13  4  1 4.7   NA 15.24 4.2735 4.58
14  4  2  NA 4325  6.66     NA   NA
15  4  3 5.3   NA 25.20     NA   NA
16  4  4 5.6 3256    NA 5.2782 5.42
17  5  1  NA 4351 25.36 5.6131 5.70
18  5  2 6.2 2345    NA 5.9480   NA
19  5  3 6.5   NA 19.36     NA   NA
20  5  4  NA 4643 17.25 6.6178 6.54", header = T)

2.data_other

Me  EE  PE  DE  TE  DEE CE
1   1   1.3 1452    12.5    0.2587  1.25
1   2   1.7 2458    10.8    1.5469  0.69
1   3   0.8 3524    11.96   0.5874  0.87
1   4   0.7 1905    13.58   0.9654  0.98
2   1   0.5 2941    12.54   0.2548  1.65
2   2   0.2 3183.5  13.134  1.3658  1.11
2   3   0.01    3426    13.42   0.48692 1.320666667
2   4   1.52    3668.5  13.706  1.9547  1.386095238
3   1   1.98    3911    13.992  0.36906 1.45152381
3   2   2.1 4153.5  14.278  0.31013 1.516952381
3   3   2.44    6674    15.96   0.564   0.2512  
3   4   2.736   6671    16.5    1.85    1.5687  
4   1   1.05    4881    15.136  0.13334 1.713238095
4   2   1.52    5123.5  15.422  0.07441 1.778666667
4   3   0.95    5366    15.708  0.01548 1.844095238
4   4   1.073   5608.5  15.994  1.2548  1.90952381
5   1   1.0233  5851    16.28   1.9658  1.974952381
5   2   0.9733  6093.5  16.566  2.2154  2.040380952
5   3   0.9233  6336    16.852  1.2587  2.105809524
5   4   2.45    6578.5  17.138  1.9657  2.171238095

我正在使用数据绘制点图,我正在使用以下代码

data <- read.table("data.txt")
datad <- melt(data,id.vars = c("Me","EE"),measure.vars= c("PE","DE","TE","DEE","CE"))
ggplot(subset(datad, !is.na(EE)),aes(x=EE,y=value), as.table = T) + 
    geom_point(aes(color=factor(Me)), size = 3) + 
    facet_wrap(~variable, nrow=3, ncol=2, scales = "free_y")

我正在使用data_other绘制线图并使用以下代码

data_other <- read.table("data_other.txt", header = T)
data_otherd <- melt(data_other, id.vars = c("Me","EE"), measure.vars = c("PE","DE","TE","DEE","CE"))
ggplot(subset(data_otherd, !is.na(EE)), aes(x=EE, y=value), as.table = T) +
    geom_line(aes(color = factor (Me))) +
    facet_wrap(~variable, nrow=3, ncol=2, scales = "free_y")

结果。

  1. 数据(点图)
  2. enter image description here

    1. data_other(折线图)
    2. enter image description here

      我试图将两个数据集合并到同一个图上(意思是data_other线图应该重叠到数据点图上,反之亦然)。

      两个数据集都有相同数量的列,列名也相似。

      没有facet_wrap,我知道我可以使用不同的geom来指定不同的数据集,并在点图上绘制线图。但是使用facet wrap我不知道如何组合数据集。

      如何将具有不同geom的两个数据集包装到单个图上。

      请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要使用第一个数据框拨打ggplot(),然后使用geom_line()添加data=data_otherd。由于所有变量名称都相同,geom_line()将使用aes() ggplot()提供的相同信息(同时将color=factor(Me)移至aes() ggplot() 1}}来电)。

ggplot(datad,aes(x=EE,y=value,color=factor(Me)))+
      geom_point()+
      geom_line(data=data_otherd)+
      facet_wrap(~variable, nrow=3, ncol=2, scales = "free_y")

enter image description here