我从下面的代码开始,但是它没有显示正确的输出。我只是想要一个正常的频率堆积条形图来显示条形上的百分比,但在 y 轴上显示频率。请问有人可以提供建议吗?
ggplot(数据 = df,映射 = aes(x = Family_Size,y = 频率,填充 = 幸存))+ geom_bar(stat =“身份”)+
geom_text(aes(标签=paste0(df$百分比),y=百分比),大小=3)+
主题(plot.title = element_text(hjust = 0.5))
<table><tbody><tr><th>Survived</th><th>Family_Size</th><th>Frequency</th><th>Percentage</th></tr><tr><td>Yes</td><td>1</td><td>20</td><td>20%</td></tr><tr><td>No</td><td>1</td><td>80</td><td>80%</td></tr><tr><td>Yes</td><td>2</td><td>40</td><td>40%</td></tr><tr><td>No</td><td>2</td><td>60</td><td>60%</td></tr></tbody></table>
最佳答案
您正在寻找类似的东西吗?
ggplot(df, aes(x = Family_Size, y = Frequency, fill = Survived))+
geom_col()+
scale_y_continuous(breaks = seq(0,100, by = 20))+
geom_text(aes(label = Percentage), position = position_stack(0.5))
编辑:使用两位小数设置百分比格式
ggplot(df, aes(x = Family_Size, y = Frequency, fill = Survived))+
geom_col()+
scale_y_continuous(breaks = seq(0,100, by = 20))+
geom_text(aes(label = paste(format(round(Frequency,2),nsmall = 2),"%")), position = position_stack(0.5))
可重现的示例
structure(list(Survived = c("Yes", "No", "Yes", "No"), Family_Size = c(1L,
1L, 2L, 2L), Frequency = c(20L, 80L, 40L, 60L), Percentage = c("20%",
"80%", "40%", "60%")), row.names = c(NA, -4L), class = c("data.table",
"data.frame"))
关于r - 在 R 中,如何创建频率堆积条形图,但条形上有百分比标签,y 轴上有频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955832/