2017-09-26 43 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