首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ggplot中使用数值数据制作条形图

在ggplot中使用数值数据制作条形图
EN

Stack Overflow用户
提问于 2020-04-19 20:01:52
回答 1查看 38关注 0票数 0

我有一个数据框架,包括美国每个县的各种人口和经济数据。在成功的情况下,我总结了这些数据,给出了每个州的总数。我在分析中只使用了特定的状态,如下所示。Data Frame

我希望创建一个条形图,每个州的性别比例(每个州有多少男性和女性)。我尝试了以下代码,并收到以下输出:

代码语言:javascript
复制
p1 <- ggplot(MW_15, aes(y="2015 Pop", x=State)) + geom_bar(position="fill", stat="identity")
p1 + ylab("Population")

Code Output

是我的数据的格式,还是我使用的代码(很可能是两者的组合)阻止了我获得有意义的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-19 20:17:30

第一。正如@RuiBarrads已经建议的那样,当你在帖子中放入一段数据时,回答起来会更容易。其次,在aes中使用像"2015 Pop“这样的笨拙的var名称时,你必须将它们放在反号中,而不是双引号中。否则,ggplot2不会将它们视为变量的名称。第三。要按性别绘制人口大小或份额,您必须使用例如tidyr::pivot_longer将df转换为长格式。这样,男性和女性就成了我们可以映射到fill美学上的一个变量的类别。尝尝这个

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

p1 <- tidyr::pivot_longer(MW_15, -c("State", "2015 Pop"), names_to = "gender", values_to = "num") %>% 
  ggplot(aes(x=State, y=num, fill = gender)) + 
  geom_bar(position="fill", stat="identity")
p1 + ylab("Population")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61303998

复制
相关文章

相似问题

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