首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并条形图数据

合并条形图数据
EN

Stack Overflow用户
提问于 2017-04-04 22:46:13
回答 1查看 81关注 0票数 2

这是我目前的条形图:

我希望将特朗普的所有数据合并到一个条形图中,将所有克林顿的数据合并到另一个条形图中。

我认为基本上我需要计算获胜者是特朗普的所有值的平均值,以及获胜者是克林顿的所有值的平均值,但我不确定如何准确地做到这一点,因为我是一个菜鸟。

以下是我当前的代码,如果它有帮助的话:

代码语言:javascript
复制
library(ggplot2)

healthd = read.csv("R/states.csv")


states = healthd[[1]]
uninsured2015 = healthd[[3]]
uninsured2015 = abs(as.numeric(as.character(gsub("%","", uninsured2015))))
insuredChange = healthd[[4]]
insuredChange = abs(as.numeric(as.character(gsub("%","", insuredChange))))
winner = healthd[[15]]

ggplot(data = healthd, aes(x = states, y = insuredChange, fill=winner)) +
xlab("State") + ylab("Percent Uninsured (2015)") +
scale_fill_manual(values = c("Trump" = "red4", "Clinton" = "blue4")) +
geom_bar(stat="identity") +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), axis.text.x=element_text(angle = 90, hjust = 1))

另外,这是我的数据的头部:

代码语言:javascript
复制
> head(healthd)
       State Uninsured.Rate..2010. Uninsured.Rate..2015. Uninsured.Rate.Change..2010.2015.
1   Alabama                 14.60%                10.10%                            -4.50%
2    Alaska                 19.90%                14.90%                               -5%
3   Arizona                 16.90%                10.80%                            -6.10%
4  Arkansas                 17.50%                 9.50%                               -8%
5 California                18.50%                 8.60%                            -9.90%
6   Colorado                15.90%                 8.10%                            -7.80%
  Health.Insurance.Coverage.Change..2010.2015. Employer.Health.Insurance.Coverage..2015.
1                                       215000                                   2545000
2                                        36000                                    390000
3                                       410000                                   3288000
4                                       234000                                   1365000
5                                      3826000                                  19552000
6                                       419000                                   2949000
  Marketplace.Health.Insurance.Coverage..2016. Marketplace.Tax.Credits..2016.
1                                       165534                         152206
2                                        17995                          16205
3                                       179445                         124346
4                                        63357                          56843
5                                      1415428                        1239893
6                                       108311                          67062
  Average.Monthly.Tax.Credit..2016. State.Medicaid.Expansion..2016. Medicaid.Enrollment..2013.
1                             $310                            FALSE                     799176
2                             $750                             TRUE                     122334
3                             $230                             TRUE                    1201770
4                             $306                             TRUE                     556851
5                             $309                             TRUE                    7755381
6                             $318                             TRUE                     783420
  Medicaid.Enrollment..2016. Medicaid.Enrollment.Change..2013.2016. Medicare.Enrollment..2016.
1                     910775                                 111599                     989855
2                     166625                                  44291                      88966
3                    1716198                                 514428                    1175624
4                     920194                                 363343                     606146
5                   11843081                                4087700                    5829777
6                    1375264                                 591844                     820234
  X2016.Election.Winner
1                 Trump
2                 Trump
3                 Trump
4                 Trump
5               Clinton
6               Clinton
EN

回答 1

Stack Overflow用户

发布于 2017-04-05 15:37:15

您必须首先将数据聚合到一个新的数据帧中,然后重新绘制它。在R中有很多方法可以做到这一点,但dplyr可能是易学、强大和编程安全性的最佳组合-所以我将使用这一点。

我模拟了一些数据,代码如下:

代码语言:javascript
复制
library(ggplot2)
library(dplyr)

n <- 50
ss <- sprintf("State-%.2d",1:n)
u15 <- 10*(runif(n) + 0.5)
icg = 4*(runif(n) + 0.5)
w = sample(c("Candidate-1","Candidate-2"),n,replace=T)

healthd <- data.frame(states=ss,uninsured2015=u15,insuredChange=icg,winner=w)

ggplot(data = healthd, aes(x = states, y = insuredChange, fill=winner)) +
  xlab("State") + ylab("Percent Uninsured (2015)") +
  scale_fill_manual(values = c("Candidate-1" = "red4", "Candidate-2" = "blue4")) +
  geom_bar(stat="identity") + theme_bw() +
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"), 
        axis.text.x=element_text(angle = 90, hjust = 1))

# make a new aggregated dataframe with dplyr
aghealthd <- healthd %>% group_by(winner) %>% 
                         summarise(uninsured2015=mean(uninsured2015),
                                   insuredChange=mean(insuredChange))

# plot that with the same code, changing only the x-axis
ggplot(data = aghealthd, aes(x = winner, y = insuredChange, fill=winner)) +
  xlab("State") + ylab("Percent Uninsured (2015)") +
  scale_fill_manual(values = c("Candidate-1" = "red4", "Candidate-2" = "blue4")) +
  geom_bar(stat="identity") + theme_bw() +
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"), 
        axis.text.x=element_text(angle = 90, hjust = 1))

这是图1:

这是图2:

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

https://stackoverflow.com/questions/43210526

复制
相关文章

相似问题

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