我有一个数据框架,包括美国每个县的各种人口和经济数据。在成功的情况下,我总结了这些数据,给出了每个州的总数。我在分析中只使用了特定的状态,如下所示。Data Frame
我希望创建一个条形图,每个州的性别比例(每个州有多少男性和女性)。我尝试了以下代码,并收到以下输出:
p1 <- ggplot(MW_15, aes(y="2015 Pop", x=State)) + geom_bar(position="fill", stat="identity")
p1 + ylab("Population")是我的数据的格式,还是我使用的代码(很可能是两者的组合)阻止了我获得有意义的结果?
发布于 2020-04-19 20:17:30
第一。正如@RuiBarrads已经建议的那样,当你在帖子中放入一段数据时,回答起来会更容易。其次,在aes中使用像"2015 Pop“这样的笨拙的var名称时,你必须将它们放在反号中,而不是双引号中。否则,ggplot2不会将它们视为变量的名称。第三。要按性别绘制人口大小或份额,您必须使用例如tidyr::pivot_longer将df转换为长格式。这样,男性和女性就成了我们可以映射到fill美学上的一个变量的类别。尝尝这个
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")https://stackoverflow.com/questions/61303998
复制相似问题