r ggplot2除绘制颜色外,还绘制两种类型的条形图

r ggplot2除绘制颜色外,还绘制两种类型的条形图,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我需要做一个复杂的条形图,我想在我的每个刻面框中显示两个不同的变量。目前我可以得到颜色 我的数据的前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

我需要做一个复杂的条形图,我想在我的每个刻面框中显示两个不同的变量。目前我可以得到颜色

我的数据的前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)
)
我的代码如下所示:

> 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变量:

我已经得到了我需要的面、x轴组和颜色,但我找不到一种方法来创建两种不同类型的条。对于我的每一个“id”栏,我都想要以下视觉效果:

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吗?我可以用虚线和规则线,颜色对应不同的变量

谢谢大家!

您可以使用alpha,因为您没有共享足够的数据,所以需要更改一些数据:

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

添加例如scale_alpha_manualvalues=c0.4,1,以使较轻的杆更坚固。

可能重复谢谢,这是一个很好的解决方案,效果非常好!