我在 ggplots 中制作了一些条形图,并希望通过轴标签表明每个条形图都是更大类别的一部分。例如下面的情节:
我知道我可以使用美学手动为轴标签重新着色,或者改变数据框以调用特定颜色。 (有关示例,请参见这篇文章:ggplot color axis labels based on variable)
但是 ggplots 中是否没有自动化过程来执行此操作并生成图例,类似于 fill/scale_fill?
我们可以为此使用
ggside
包。可以在这里找到一个简单的教程。
gapminder
:因为我没有你的数据框,我将使用
gapminder
数据集作为例子。
library(gapminder)
test_df <- gapminder %>%
group_by(country) %>%
slice_head(n = 3) %>%
arrange(country) %>%
head(n = 10)
# A tibble: 10 × 6
# Groups: country [4]
country continent year lifeExp pop gdpPercap
<fct> <fct> <int> <dbl> <int> <dbl>
1 Afghanistan Asia 1952 28.8 8425333 779.
2 Afghanistan Asia 1957 30.3 9240934 821.
3 Afghanistan Asia 1962 32.0 10267083 853.
4 Albania Europe 1952 55.2 1282697 1601.
5 Albania Europe 1957 59.3 1476505 1942.
6 Albania Europe 1962 64.8 1728137 2313.
7 Algeria Africa 1952 43.1 9279525 2449.
8 Algeria Africa 1957 45.7 10270856 3014.
9 Algeria Africa 1962 48.3 11000948 2551.
10 Angola Africa 1952 30.0 4232095 3521.
library(tidyverse)
library(ggside)
ggplot(test_df, aes(country, lifeExp, fill = as.character(year))) +
geom_col() +
geom_xsidetile(aes(xfill = continent), position = "fill") +
scale_xsidey_continuous(breaks = NULL) +
ggside(x.pos = "bottom", draw_x_on = "main") +
theme_ggside_minimal()
创建于 2023-03-08 与 reprex v2.0.2