如何合并两个图?

问题描述 投票:0回答:1

是否可以将两个地块合并为一个地块?

这些是我试图结合的情节。 我尝试过“combined_plot”命令,但得到了相同的结果 - 两个单独的图。

这是我的代码:

图1:

plot1 <- ggplot() + 
   geom_bar(data = complete_august_data, aes(x = DATE, y = Count, fill = MANUAL.ID.), 
        stat = "identity", width = 0.7, position = "dodge") +
   geom_bar(data = complete_july_data, aes(x = DATE, y = Count, fill = MANUAL.ID.), 
        stat = "identity", width = 0.7, position = "dodge") +
   labs(title = "Kumulative kurver for juli og august ved Borupgård 2018",
        x = "Dato",
        y = "Kumulative observationer",
        fill = "Art") +
   scale_x_date(date_labels = "%Y-%m-%d") +
   theme_minimal()

图2:

plot2 <- ggplot(result_df, aes(x = Dato, y = Belysning)) +
  geom_line(color = "gold2") +  # Tilføj en linje
  geom_point(color = "goldenrod", size = 2) +  # Tilføj punkter
  labs(x = "Dato", y = "Belysning", title = "Graf over belysning 25 juli - 29 august 2018") +
  scale_x_date(limits = as.Date(c("2018-07-26", "2018-08-29")), 
           date_breaks = "5 day", 
           date_labels = "%Y-%m-%d")+
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  theme_bw()
r ggplot2
1个回答
0
投票

如果您想要一个具有两个 y 轴的图,可以使用 ggplo2,但需要一些摆弄。

  1. 您可以添加第二个 y 轴,其大小相对于第一个 y 轴缩放,使用
+ scale_y_continuous(
    # Add a second axis and specify its features
    sec.axis = sec_axis(~./6000, name="Belysning")
  )

在这里,我将第一个轴设置为 6000。我建议手动设置第一个 y 轴限制,以便两者 100% 一致。

  1. 现在将“Belysning”的点/线添加到绘图中。

注意,它们是相对于 y 轴 1 绘制的,因此您需要重新缩放它们。

+ geom_line( aes(y=Belysning * 6000), color=gold2)
  1. 结合起来,它应该看起来像这样(由于没有数据样本,我无法测试这一点):
plot_data <- cbind(complete_july_data,complete_august_data)
plot_data <- full_join(result_df, plot_data, join_by(Dato == DATE))

plot <- ggplot(plot_data, aes(x=Dato)) +
   geom_bar(aes(y = Count, fill = MANUAL.ID.), 
        stat = "identity", width = 0.7, position = "dodge") +
   geom_line(aes(y = Belysning*6000), color = "gold2") +
   geom_point(aes(y = Belysning*6000), color = "goldenrod", size = 2) +
   labs(title = "Kumulative kurver for juli og august ved Borupgård 2018",
        x = "Dato",
        y = "Kumulative observationer",
        fill = "Art") +
   scale_y_continuous(
       limits = c(0,6000)
       name = "Kumulative observationer",
       sec.axis = sec_axis(~./6000, name="Belysning")
   ) + 
   scale_x_date(limits = as.Date(c("2018-07-26", "2018-08-29")), 
       date_breaks = "5 day", 
       date_labels = "%Y-%m-%d")+
   theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
   theme_bw()

我尝试通过将所有三个数据集合并为一个来进行简化。如果这导致问题,只需像您所做的那样将它们单独添加即可。

© www.soinside.com 2019 - 2024. All rights reserved.