首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ggplot -如何表示第三方差的平均值?

Ggplot -如何表示第三方差的平均值?
EN

Stack Overflow用户
提问于 2020-09-09 05:58:33
回答 1查看 36关注 0票数 0

假设我有这个数据框架:

The data frame

我想做一个图表,显示每个SES (社会经济地位)女性的平均收入是多少,男性的平均收入是多少。

到目前为止,我有以下代码:

代码语言:javascript
复制
ggplot(incomeSorted, aes(GENDER)) +
  scale_y_continuous("Mean")+
  geom_bar(position = "dodge")+
  facet_wrap("SES")

这是输出:

我如何制作图表来显示收入的平均值,而不是计算每个类别的女性和男性数量?

感谢大家的支持!

EN

回答 1

Stack Overflow用户

发布于 2020-09-09 06:22:21

如果你想显示平均收入,你必须计算它。您可以在summarise()中使用dplyrgroup_by()来获取关键变量,然后进行绘图。下面是该任务的代码:

代码语言:javascript
复制
library(ggplot2)
library(dplyr)
#Data
df <- data.frame(id=1:8,Gender=c(rep('Female',4),rep(c('Male','Female'),2)),
                 income=c(73,150,220.18,234,314.16,983.1,1001,1012),
                 SES=c('Bottom','Bottom','Middle','Middle','Middle',
                       'Upper','Upper','Upper'),
                 stringsAsFactors = F)
#Compute and plot
df %>% group_by(SES,Gender) %>%
  summarise(MeanIncome=mean(income,na.rm=T)) %>%
  ggplot(aes(x=Gender,y=MeanIncome)) +
  scale_y_continuous("Mean")+
  geom_bar(stat = 'identity')+
  facet_wrap(.~SES)

输出:

或者,您可以避免使用小平面和使用fill变量显示绘图,如下所示:

代码语言:javascript
复制
#Code 2
df %>% group_by(SES,Gender) %>%
  summarise(MeanIncome=mean(income,na.rm=T)) %>%
  ggplot(aes(x=Gender,y=MeanIncome,fill=SES)) +
  scale_y_continuous("Mean")+
  geom_bar(stat = 'identity',position = position_dodge2(0.9,preserve = 'single'))

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63802077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档