并非所有计数都通过geom_text出现

问题描述 投票:0回答:1

我有几种生物的几种特征的数据集。我将按几个不同类别分别或组合(例如种类,位置,种群)分别显示每个功能。原始计数,总样本量的百分比和给定组中的百分比。

当我尝试使用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))

enter image description here

r ggplot2 bar-chart geom-text
1个回答
0
投票

您需要包括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))

enter image description here

具有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))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.