R ggplot-在具有两个轴的同一图中绘制具有子类别的多个变量



我有这个数据:

date        area        people_tested    positive_cases positive
2021-12-09  Total       76282.0                402.0000 0.005300000
2021-12-10  Total       84023.0                389.0000 0.004600000
2021-12-09  Total_3da        NA                382.3333 0.004900000
2021-12-10  Total_3da        NA                377.6667 0.004933333
2021-12-09  Paris_3da   75257.4                      NA          NA
2021-12-10  Paris_3da   71553.6                      NA          NA

我想为每个组合创建一个带有线条的绘图。例如:

  1. 第1行->总计/测试人数
  2. 第2行->总计/正数(_C(
  3. 第3行->总计/阳性
  4. 第4行->总计_3da/阳性_cases
  5. 第5行->总计_3da/阳性
  6. 第6行->教区_3da/测试人数

我还想要"人员测试">&"positive_cases">在同一轴上,"positive">

我考虑过的一种方法是创建一个具有以下格式的新表,但我想知道是否有更简单的方法:

date        area                      value 
2021-12-09  Total_people_tested     76282.0                
2021-12-10  Total_people_tested     84023.0  
2021-12-09  Total_positive_cases      402.0
2021-12-10  Total_positive_cases      389.0
etc

我认为直接在ggplot2上是不可能的。一种解决方案是将重塑步骤与facet_grid相结合。类似于:

library(tidyr)
# reshaping to long form
df_tidy <- df %>%
pivot_longer(cols = people_tested:positive,
names_to = “names”,
values_to_ “value”)
# using ggplot
df_tidy %>% ggplot(aes(x = date, y = value)) +
geom_line() +
facet_grid(names ~ area)

我推荐Wickham的书ggplot2:用于数据分析的优雅图形。它有很多例子可以探索!

最新更新