R中的聚类条形图

cluster bar plot in R

我正在尝试为 3 种不同类型的降水数据创建聚类条形图。我一直在进行各种搜索,如何在 R 中使用类似的数据集完成此操作。但是,我找不到任何好的帮助。

这是我目前使用的数据集。我尝试添加多个 geom_bar() 但没有成功。请参阅下面的尝试:

ggplot(ppSAcc,aes(x=date,y=as.numeric(Precipitation)))+geom_bar(stat="identity",aes(color="blue"),show.legend=FALSE,size=1)+
    geom_bar(ppMAcc,stat="identity",aes(x=date,y=as.numeric(Precipitation),color="purple"),show.legend = FALSE,size=1)+
    labs(title="Accumulated Solid Precipitation (Snow)",y="Precipitation (mm)")

在第二次尝试中,我尝试创建一个包含所有三种降水类型的数据框。

data<-data.frame(date=ppSAcc$date,snow=ppSAcc$Precipitation,mixed=ppMAcc$Precipitation,rain=ppRAcc$Precipitation)

这给了我上面显示的数据框。 这就是我被困的地方。我开始编写 ggplot ggplot(data,aes(x=date)))+geom_bar(position = "dodge",stat = "identity") 但我不确定如何编写代码以便每年有三列(雪、混合、雨)。我不确定如何设置 aes() 部分。

ggplot2 中绘制之前,您需要将数据框重新整形为更长的格式。您可以使用 tidyr:

中的 pivot_longer 函数
library(tidyr)
library(dplyr)
library(ggplot2)
library(lubridate)

df %>% pivot_longer(-date, names_to = "var", values_to = "val") %>%
  ggplot(aes(x = ymd(date), y= val, fill = var))+
  geom_col(position = position_dodge())

它能回答您的问题吗?

如果没有,请按照本指南提供数据集的可重现示例:How to make a great R reproducible example