r ggplot2除绘制颜色外,还绘制两种类型的条形图
我需要做一个复杂的条形图,我想在我的每个刻面框中显示两个不同的变量。目前我可以得到颜色 我的数据的前12行如下所示: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
> 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,以使较轻的杆更坚固。可能重复谢谢,这是一个很好的解决方案,效果非常好!