首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制一段时间内的数据趋势图

绘制一段时间内的数据趋势图
EN

Stack Overflow用户
提问于 2020-04-10 14:35:08
回答 1查看 47关注 0票数 0

我是R的新手,我想生成我拥有的医院数据的数据趋势。现在数据看起来是这样的

代码语言:javascript
复制
df <- data.frame("Hospital" = c("Buge Hosp", "Buge Hosp", "Greta Hospital", "Greta Hospital",
                               "Makor Hosp", "Makor Hospital"),
                 "Period" = c("Jul-18","Aug-18", "Jul-18","Aug-18", "Jul-18","Aug-18"),
                 "Medical admission" = 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))
df

我希望根据每个医院的数据中给出的月度周期来生成数据趋势。任何人如果有关于如何使用R来做这件事的想法,我将非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 15:06:41

您可能希望提供有关您正在寻找的内容的更多细节。但这里有一种使用ggplot2包操作数据和绘制图形的快速方法。

代码语言:javascript
复制
# Libraries
library(ggplot2)
library(reshape2)

# 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-18","Aug-18", "Jul-18","Aug-18"),
                 "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))
df
# Note, generally it's good not to have spaces in column names. But fyi, R will put a period where the space is.
# I also changed the hospital names to be consistent

# Melt data into long format
df_long <- melt(data = df,
                id.vars = c("Hospital","Period"), 
                measure.vars = c("Medical.admissions", "Surgical.admissions", "Inpatient.admissions"))

# Plot with color as admission type and different panel for each hospital 
ggplot(df_long, aes(x = Period, y = value, 
                    colour = variable, group = variable)) +
  geom_point() +
  geom_line() +
  scale_x_discrete(limits = rev(levels(df_long$Period))) +
  labs(x = "Month", y = "Number of People", colour = "Type") +
  facet_wrap(~ Hospital)

# Stacked barplot
ggplot(df_long, aes(x = Period, y = value, 
                    fill = variable, group = variable)) +
  geom_bar(stat = "identity") +
  scale_x_discrete(limits = rev(levels(df_long$Period))) +
  labs(x = "Month", y = "Number of People", fill = "Type") +
  facet_wrap(~ Hospital)

# Dodged barplot
ggplot(df_long, aes(x = Period, y = value, 
                    fill = variable, group = variable)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_x_discrete(limits = rev(levels(df_long$Period))) +
  labs(x = "Month", y = "Number of People", fill = "Type") +
  facet_wrap(~ Hospital)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61135157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档