2013-11-28 2 views
1

У меня есть 12x13 матрицы, которая выглядит следующим образом:Как заполнить/закрыть пространство между графиками, построенными с помощью ggplot?

monat beob werex_00 werex_11 werex_22 werex_33 werex_44 werex_55 werex_66 werex_77 werex_88 werex_99 Min Max 
1 22.4930171 9.1418697 8.1558828 8.0312839 10.013298 8.8922567 9.395811 10.7933080 6.5136136 8.721697 10.279974 0.108381 59.65309 
2 25.1414834 13.5886794 9.1694683 10.8709352 13.021066 10.3316655 10.579970 17.0555902 7.5915886 11.035921 13.366310 0.924013 66.94970 
3 33.8286673 16.3800292 10.0202342 11.3072626 17.674761 16.1370288 15.018551 15.3331395 12.6856599 15.479521 13.929905 -0.794309 78.78572 
4 22.0579421 11.9930633 8.4899130 8.2304118 12.987301 7.8763578 8.554007 12.4956321 9.4723508 7.057423 7.688662 -10.496481 49.01380 
5 2.5535161 -2.4503375 -4.2354520 -3.6309377 -2.969866 -4.5876993 -5.383716 -3.2612018 -5.2054387 -2.780719 -4.359513 -19.579135 32.54282 
6 -2.4405826 -8.8534136 -9.4666674 -7.4249244 -7.820072 -9.1485440 -8.546798 -7.8179739 -7.4222923 -10.978398 -12.644807 -22.821617 18.62139 
7 -2.2580848 -6.7569968 -8.3390114 -8.8757506 -8.248305 -8.4171552 -7.760800 -5.7471163 -8.7864075 -6.239596 -8.870658 -22.933219 20.84375 
8 -0.3448858 -5.6683742 -5.0467756 -5.7201820 -2.800106 -5.9640095 -5.011171 -3.3557601 -2.8967683 -4.407761 -6.146411 -17.042893 17.86556 
9 3.3963303 0.4305926 -0.8554308 -0.9985536 -1.184610 -0.5520555 0.347758 -0.3838614 -0.2199835 -1.174712 -1.630363 -8.533647 19.66163 
10 5.1839209 1.6050281 1.1578316 1.8503193 2.327975 1.6633771 1.557532 1.5563157 2.2776155 1.667714 1.333829 -4.686715 31.17342 
11 9.2551418 4.4810518 2.9992301 4.9848408 3.824927 4.2413024 3.939119 5.4256008 3.5804488 4.965302 3.790589 -1.615777 43.90991 
12 18.2233848 7.7648233 6.3344735 7.3477135 6.573620 7.1884950 7.428654 7.3119002 6.9405167 7.663072 8.342437 0.014096 62.83760 

Это по времени линии определенного значения. На следующем шаге я рисую его с помощью ggplot(). Поэтому я использовал melt() операции, чтобы получить матрицу в форме для участка:

R1_Grundwasserneubildung_Rg1Rg2_Monat_mean_druckreif <- melt(R1_Grundwasserneubildung_Rg1Rg2_Monat_mean, na.rm = FALSE, id.vars="monat") 

Этих данные выглядят, что теперь:

Monat Projektion value 
1 1 beob 22.4930171 
2 2 beob 25.1414834 
3 3 beob 33.8286673 
4 4 beob 22.0579421 
5 5 beob 2.5535161 
6 6 beob -2.4405826 
7 7 beob -2.2580848 
8 8 beob -0.3448858 
9 9 beob 3.3963303 
10 10 beob 5.1839209 
11 11 beob 9.2551418 
12 12 beob 18.2233848 
13 1 werex_00 9.1418697 
14 2 werex_00 13.5886794 
15 3 werex_00 16.3800292 
16 4 werex_00 11.9930633 
17 5 werex_00 -2.4503375 
18 6 werex_00 -8.8534136 
19 7 werex_00 -6.7569968 
20 8 werex_00 -5.6683742 
21 9 werex_00 0.4305926 
22 10 werex_00 1.6050281 
23 11 werex_00 4.4810518 
24 12 werex_00 7.7648233 
25 1 werex_11 8.1558828 
... ... ... ... 

Я также добавил некоторые новые имена для расплавленных данных (как это уже видел выше):

names(R1_Grundwasserneubildung_Rg1Rg2_Monat_mean_druckreif)<-c("Monat","Projektion","value") 

Следующий шаг определяет некоторые пользовательские цвета для сюжета:

Projektionen_Farben<-c("#000000","#00EEEE","#EEAD0E","#006400","#BDB76B","#EE7600","#68228B","#8B0000","#1E90FF","#EE6363","#556B2F","#D6D6D6","#D6D6D6") 

Теперь я сюжет растопленное данные:

ggplot(R1_Grundwasserneubildung_Rg1Rg2_Monat_mean_druckreif, 
     aes(x=Monat,y=value,color=Projektion,group=Projektion)) + 
     geom_line(size=0.8) + 
     xlab("Monat") + 
     ylab("Grundwasserneubildung [mm/Monat]") + 
     ggtitle("Grundwasserneubildung") + 
     theme_bw() + 
     scale_x_continuous(breaks = c(1,2,3,4,5,6,7,8,9,10,11,12), 
          labels = c("Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez")) + 
     theme(axis.title=element_text(size=15,vjust = 0.3, face="bold"), 
      title=element_text(size=15,vjust = 1.5,face="bold")) + 
     scale_colour_manual(values = Projektionen_Farben) 

Извините, но я не получил достаточно репутацию размещать ПИК сюжета. Теперь я хочу заполнить/закрасить пространство между Max-line и Min-line, скажем, светло-серым (alpha = .3). Я пробовал с geom_ribbon(), но еще не нашел подходящего способа определить x, ymin и ymax при необходимости. Кто-нибудь знает способ заполнить пространство между этими двумя строками?

ответ

1

Используйте свой исходный кадр данных для geom_ribbon() и обеспечивают столбцы Min и Max в ymin и ymax.

+ geom_ribbon(data=R1_Grundwasserneubildung_Rg1Rg2_Monat_mean, 
        aes(x=monat,ymin=Min,ymax=Max), 
        inherit.aes=FALSE,alpha=0.3,color="grey30") 
+0

Большое спасибо. Оно работает. Это смешно, я попробовал почти то же самое, также с оригиналом. данных, но всегда было предупреждение. Как всегда, черт лежит в деталях. Спасибо – Max

+0

Я предполагаю, что проблема отсутствовала в аргументе inherit.aes = FALSE - это гарантирует, что geom_ribbon() ищет те же переменные, что и в ggplot(). –

+0

Это, наверное, точка. Я буду помнить об этом. Спасибо – Max

Смежные вопросы