R中的群集条形图

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

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

这是我当前正在使用的数据集。我尝试添加多个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()部分。

r ggplot2 bar-chart geom-bar
1个回答
1
投票

您需要先将数据框重整为更长的格式,然后才能在ggplot2中进行绘制。您可以从pivot_longer使用tidyr功能:

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

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