ggplot多组柱状图标记数值

iris1<-melt(iris, id.vars='Species', measure.vars=c('Sepal.Length','Sepal.Width','Petal.Length','Petal.Width'))

iris1<-data.table(iris1)

iris1_1<-iris1[,list(sumvalue=sum(value)),by=list(Species,variable)]

setorder(iris1_1,Species)

#设置标签的高度,累计的高度为堆叠上面的一半

iris1_2<-iris1_1[,label_y:=cumsum(sumvalue)-sumvalue/2,by=list(Species)]

ggplot(iris1_2,aes(x=factor(Species, levels=levels(iris1_2$Species)[c(3,2,1)]), y=sumvalue, fill=factor(variable,levels=levels(iris1_2$variable)[c(4,3,2,1)])))+

geom_bar(stat='identity',position=position_dodge())+ #本来不用reverse是从上到下,反过来

theme1+

geom_text(aes(x=Species,y=sumvalue+20,label=sumvalue, color=factor(variable, levels=levels(iris1_2$variable)[c(4,3,2,1)])),#和fill的一致

position=position_dodge(width=0.9),show.legend = F)+#showlegend 隐藏文字的图例

ggtitle('柱状图')+

scale_fill_discrete(name='图例', #图例项(或者用scale_fill_discrete)

labels=levels(iris1_2$variable)[c(4,3,2,1)])+

#颜色 scale_x_discrete(name='类别', #x轴坐标名称

labels=levels(iris1_2$Species)[c(3,2,1)])+ #离散的标签

scale_y_continuous(name='值', #y轴坐标名称

breaks=seq(0,400,50),limits=c(0,400))#连续的标签和坐标轴


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值