我有几种生物的几种特征的数据集。我将按几个不同类别分别或组合(例如种类,位置,种群)分别显示每个功能。原始计数,总样本量的百分比和给定组中的百分比。
当我尝试使用ggplot显示堆叠的条形图时,表示组中个人的百分比。由于组中没有相同数量的个人,因此我想在其各自的条形图中显示具有该功能的个人的原始数目或计数。我设法正确显示了堆积的百分比栏聊天,并显示了人口最多的小组中的个人人数。我在显示其余组时遇到问题。
ggplot(data=All.k6,aes(x=Second.Dorsal))+
geom_bar(aes(fill=Species),position="fill")+
scale_y_continuous(labels=scales::percent)+
labs(x="Number of Second Dorsal Spines",y="Percentage of Individuals within Species",title="Second Dorsal Spines")+
geom_text(aes(label=..count..),stat='count',position=position_fill(vjust=0.5))
您需要包括group=
美学,以便position_fill
知道如何放置事物。在geom_bar
中,您设置了fill=
美观度,因此ggplot
假设您也想通过该美观度来group
。在geom_text
中,假定组是您的x=
美学。就您而言,只需在group=Species
美学之后添加label=
。这是一个例子:
# sample dataset
set.seed(1234)
types <- data.frame(
x=c('A','A','A','B','B','B','C','C','C'),
x1=rep(c('aa','bb','cc'),3)
)
df <- rbind(types[sample(1:9,50,replace=TRUE),])
未分组的图:
ggplot(df, aes(x=x)) +
geom_bar(aes(fill=x1),position='fill') +
scale_y_continuous(label=scales::percent) +
geom_text(aes(label=..count..),stat='count',
position=position_fill(vjust=0.5))
具有group=
美学的图:
ggplot(df, aes(x=x)) +
geom_bar(aes(fill=x1),position='fill') +
scale_y_continuous(label=scales::percent) +
geom_text(aes(label=..count..,group=x1),stat='count',
position=position_fill(vjust=0.5))