【问题标题】:R ggplot - 在具有两个轴的同一图中绘制具有子类别的多个变量
【发布时间】:2022-01-21 17:17:37
【问题描述】:

我有这些数据:

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 行 -> 总计 / people_tested
  2. 第 2 行 -> 总数 / positive_cases
  3. 第 3 行 -> 总计/正
  4. 第 4 行 -> Total_3da / positive_cases
  5. 第 5 行 -> Total_3da / 正
  6. 第 6 行 -> Paris_3da / people_tested

我还希望 'people_tested''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

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    直接在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's book ggplot2: elegant graphics for data analysis。它有很多例子可供探索!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多