ggplot 多列bar图

ggplot 多列情况下bar图,geom_bar 的y只是支持一列不像barplot一样,要实现多列的需要把其余的列数转换成一列


ds<-c('201607','201608','201609')
gmv<-c(100,200,300)
order<-c(50,60,70)
df<-data.frame(ds,gmv,order)


##第一种方法是使用reshape的melt
#install.packages('reshape2')
#library('reshape2')
df2<-melt(df,id=c('ds'),variable.name = 'dim',value.name = 'value')
p<-ggplot(data=df2,aes(x=ds,y=value))+geom_bar(stat = 'identity',aes(fill=dim),position='dodge')
print(p)




##没有id的情况下会把所有的所有列放在变量里
gmv1<-200
gmv2<-300
gmv3<-400
dftmp<-data.frame(gmv1,gmv2,gmv3)
dftmp2<-melt(df,variable.name = 'gmv')
p<-ggplot(data=dftmp2,aes(x=gmv,y=value))+geom_bar(stat = 'identity')+geom_text(aes(label=value,vjust=-1))
print(p)

你可能感兴趣的:(R)