我正在尝试使用ggplot2获取堆积条形图,其中每个条形图显示该大陆国家/地区的gdp条件。
然而,我能做的最好的事情就是让这些酒吧与该大陆国家的国家数量相等。我的代码和结果图如下。
gapminder %>%
mutate(gdp = pop * gdpPercap) %>%
ggplot() +
geom_bar(mapping = aes(x = continent, weight =sum(gdp),
fill = country), color = "black") +
guides(fill = FALSE) +
theme_bw()
答案 0 :(得分:4)
我不认为这是叠条的一个很好的用例。试图为142个国家分配调色板只会造成彩虹混乱。
我可以建议树形图。
library(treemap)
library(gapminder)
gapminder %>%
filter(year == 2007) %>%
mutate(gdp = pop * gdpPercap) %>%
treemap(., c("continent", "country"), "gdp", algorithm = "squarified")
答案 1 :(得分:1)
要获得必须工作的内容,您需要在stat = "identity"
中设置geom_bar
或仅使用geom_col
。您还需要为每个国家/地区过滤一年,或者您每个国家/地区都会获得每年的部分。
library(tidyverse)
gapminder::gapminder %>%
mutate(gdp = pop * gdpPercap) %>%
group_by(country) %>%
filter(year == max(year)) %>%
ggplot(aes(x = continent, y = gdp, fill = country)) +
geom_col(color = "black", size = 0.2) +
guides(fill = FALSE) +
theme_bw()