如何在一张图片中将一张条形图分成两张?
How to one barplot into two within one picture?
这是我的代码:
p14 <- ggplot(plot14, aes(x = Harvest, y = Percentage, fill = factor(Plant, level = orderplants)))+
geom_col(show.legend = FALSE)+
geom_vline(xintercept=3.5)+
labs(y = "Bedekking %",
x = NULL,
fill = "Plantensoort")+
theme_classic()
plot 14
代码是关于一个地块的植物覆盖率(我总共有 70 个地块)。所以 bedekking 是荷兰语的覆盖范围。问题:数字代表测量的时间段:
- 2020 年 7 月
- 2020 年 8 月
- 2020 年 10 月
- 2021 年 5 月
- 2021 年 6 月
- 2021 年 7 月
- 2021 年 8 月
- 2021 年 10 月
我希望每个月的条形图都排成一行,因此会有两行(2020 年和 2021 年),其中相同月份的条形图彼此 above/below(见下面的丑陋草图)。这是否可以编码,或者我是否需要更改我的整个数据集?
very quick example of goal
如果您可以将一些样本原始数据作为可重现示例的一部分,那就更好了。我创建了一些虚构的数据来说明。
理想情况下,您希望原始日期落后于编号的时间测量值,以便您可以将日期拆分为月和年作为单独的变量。假设你只有数字,你可以创建一些这样的逻辑来计算月份和年份。
您可以使用 facet_wrap
显示相应月份的一年以上。
library(tidyverse)
library(scales)
tibble(
harvest = seq(1, 8, 1),
percentage = rep(1, 8),
plant = rep(c("this", "that"), 4)
) |>
mutate(
month = case_when(
harvest %in% c(1, 6) ~ 7,
harvest %in% c(2, 7) ~ 8,
harvest %in% c(3, 8) ~ 10,
harvest %in% c(4) ~ 5,
harvest %in% c(5) ~ 6,
TRUE ~ NA_real_
),
year = case_when(
harvest <= 3 ~ 2020,
TRUE ~ 2021
)
) |>
ggplot(aes(month, percentage, fill = plant)) +
geom_col(show.legend = FALSE) +
labs(
y = "Bedekking %",
x = NULL,
fill = "Plantensoort"
) +
facet_wrap(~year, ncol = 1) +
scale_y_continuous(labels = label_percent()) +
theme_classic()
由 reprex package (v2.0.1)
创建于 2022-05-13
这是我的代码:
p14 <- ggplot(plot14, aes(x = Harvest, y = Percentage, fill = factor(Plant, level = orderplants)))+
geom_col(show.legend = FALSE)+
geom_vline(xintercept=3.5)+
labs(y = "Bedekking %",
x = NULL,
fill = "Plantensoort")+
theme_classic()
plot 14
代码是关于一个地块的植物覆盖率(我总共有 70 个地块)。所以 bedekking 是荷兰语的覆盖范围。问题:数字代表测量的时间段:
- 2020 年 7 月
- 2020 年 8 月
- 2020 年 10 月
- 2021 年 5 月
- 2021 年 6 月
- 2021 年 7 月
- 2021 年 8 月
- 2021 年 10 月
我希望每个月的条形图都排成一行,因此会有两行(2020 年和 2021 年),其中相同月份的条形图彼此 above/below(见下面的丑陋草图)。这是否可以编码,或者我是否需要更改我的整个数据集?
very quick example of goal
如果您可以将一些样本原始数据作为可重现示例的一部分,那就更好了。我创建了一些虚构的数据来说明。
理想情况下,您希望原始日期落后于编号的时间测量值,以便您可以将日期拆分为月和年作为单独的变量。假设你只有数字,你可以创建一些这样的逻辑来计算月份和年份。
您可以使用 facet_wrap
显示相应月份的一年以上。
library(tidyverse)
library(scales)
tibble(
harvest = seq(1, 8, 1),
percentage = rep(1, 8),
plant = rep(c("this", "that"), 4)
) |>
mutate(
month = case_when(
harvest %in% c(1, 6) ~ 7,
harvest %in% c(2, 7) ~ 8,
harvest %in% c(3, 8) ~ 10,
harvest %in% c(4) ~ 5,
harvest %in% c(5) ~ 6,
TRUE ~ NA_real_
),
year = case_when(
harvest <= 3 ~ 2020,
TRUE ~ 2021
)
) |>
ggplot(aes(month, percentage, fill = plant)) +
geom_col(show.legend = FALSE) +
labs(
y = "Bedekking %",
x = NULL,
fill = "Plantensoort"
) +
facet_wrap(~year, ncol = 1) +
scale_y_continuous(labels = label_percent()) +
theme_classic()
由 reprex package (v2.0.1)
创建于 2022-05-13