2017-09-26 40 views
0

我需要做一個複雜的barplot,我想有兩個不同的變量在我的每一個刻面框顯示出來。目前,我可以得到的顏色[R GGPLOT2情節兩種類型的酒吧除了顏色

前12我的數據行看起來是這樣的:

> alldata[1:12,] 
      value layer Resolution Season Variable 
1: 1.487185e+01 b.01K  1km base  ET 
2: 2.280336e+01 b.01K  1km peak  ET 
3: 3.252913e+01 b.01K  1km summer  ET 
4: 2.379603e+07 b.01K  1km base  Q 
5: 4.068850e+07 b.01K  1km peak  Q 
6: 2.265410e+07 b.01K  1km summer  Q 
7: -2.626421e+07 b.01K  1km base deltaS 
8: 2.541856e+07 b.01K  1km peak deltaS 
9: 2.729352e+06 b.01K  1km summer deltaS 
10: 6.137754e+02 b.01K  100m base  ET 
11: 1.452516e+03 b.01K  100m peak  ET 
12: 2.218111e+03 b.01K  100m summer  ET 

我的代碼如下所示:

melt=melt(alldata,id=c("layer","Resolution","Season","Variable"),measure=c("value")) 

print(ggplot(data=melt,aes(x=Season,y=value)) 
     +geom_bar(stat="identity",position="dodge",aes(fill=Variable)) 
     +facet_wrap(~ layer) 
) 

我的情節是這樣的(忽略缺少「ET」變量): enter image description here

我有我的方面,x軸組和顏色我需要,但我找不到方法來創建兩個di fferent類型的吧。對於每一個我的「身份證」列,我想下面的視覺效果:

layer- facet row 
scaling factor- facet column 
bargroup- season 
color- variable 
??BARTYPE?? (i.e. one filled and one open, or slashed lines, or anything)- resolution 

有誰知道如何創建不同bartypes(以線圖,我可以點線和普通線,與相對應的顏色一個不同的變量)。

謝謝!

+0

[如何添加紋理來填充ggplot2中的顏色?](https://stackoverflow.com/questions/2895319/how-to-add-texture-to-fill-colors-in-ggplot2) – Mako212

回答

1

您可以使用alpha,有一些改變的數據,因爲你沒有足夠的共享:

ggplot(data=melt,aes(x=Season,y=value,fill=Variable,alpha=Resolution)) + 
    geom_col(position="dodge", col=1) 

enter image description here

添加例如scale_alpha_manual(values = c(0.4, 1))使較淺的條更加牢固。

+0

謝謝你,這是一個很好的解決方案,並完美地工作! – LaurenLiloFoster