![](/img/trans.png)
[英]ggplot2: How to reorder stacked bar charts by proportions of fill variable
[英]How to add individual proportions to a stacked bar graph using ggplot2?
我目前正在基于称为“ esoph”的数据集(IIRC在R中可用,但已将其移至CSV)编写报告,并且由于对ggplot2的有限经验,我能够创建一些不错的图形。 我想创建一个比例堆积的条形图(所有条形之和为1),但是我成功了,但是我找不到一种将各个比例插入每个条形图的方法。
这是一个有效的示例(在我的实际代码中,这有点不同,带有葡萄牙语标签,但这很好用):
require(stats)
library(ggplot2)
data <- esoph
g <- ggplot(data, aes(x = ncases, fill = tobgp)) +
geom_bar(position = 'fill') +
scale_fill_brewer() +
xlab("Number of cancer occurences") +
ylab("Proportions for each group") +
guides(fill=guide_legend(title="Alcohol ingestion (g/day)"))
g
生成此图:
我读过,最好是计算比例,然后将其输入ggplot,但是我还不太清楚如何做到这一点。
要计算比例,可以在espoh数据框中添加两列。 基本上,添加一列,其总价值为ncases。 如果您正在使用library(data.table)
,它将是这样的:
espoh[,.(total=sum(tobgp)),by=ncases]
然后计算分数为:
espoh[,fraction:=tobgp/total]
使用geom_text功能在堆叠图上添加标签:
+ geom_text(aes( x=ncases, y=tobgp, label=fraction, position=position_stack(vjust=0.5), colour="black")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.