【发布时间】:2020-04-27 01:26:01
【问题描述】:
我的数据如下所示:
# Data
df <- data.frame("Hospital" = c("Buge Hospital", "Buge Hospital", "Greta Hospital", "Greta Hospital",
"Makor Hospital", "Makor Hospital"),
"Period" = c("Jul-18","Aug-18", "Jul-19","Aug-19", "Jul-20","Aug-20"),
"Medical admissions" = c(12,56,0,40,5,56),
"Surgical admissions" = c(10,2,0,50,20,56),
"Inpatient admissions" = c(9,5,6,0,60,96))
现在这个数据有一个名为 period 的列,它是不同年份的月度数据,2018、2019 和 2020
如果我绘制这个数据,它看起来是这样的
library(ggplot2
# Melt data into long format
df2 <- melt(data = df,
id.vars = c("Hospital","Period"),
measure.vars = names(df[3:5]))
# Stacked barplot
ggplot( df2, aes(x = Period, y = value, fill = variable, group = variable)) +
geom_bar(stat = "identity") +
theme(legend.position = "none") +
ggtitle(unique(df2$Hospital))+
scale_x_date(date_labels = %Y)+
labs(x = "Month", y = "Number of People", fill = "Type")
绘图很好,但 x 轴没有按升序排列,我尝试使用 scale_x_date 函数但绘图仍然相同。我想要的是 2018 年开始的几个月,然后是 2019 年和 2020 年的几个月。我的意思是 x 轴要根据这样的年份按升序排列 8 月 18 日、7 月 18 日、8 月 19 日、7 月 19 日、8 月 20 日,7 月 20 日。
【问题讨论】: