【问题标题】:Need panel plots by each state, comprising three columns in R需要每个状态的面板图,包括 R 中的三列
【发布时间】:2022-07-19 21:32:52
【问题描述】:

我需要通过每个从给定链接导入附加的 csv 数据来绘制面板图(也附有示例面板图)。每个状态应包含三列 - wt、avg 和 observed,可以表示为图例或 x 轴,y 轴应显示值。 我尝试在 R 中的 ggplot 中执行此操作,但未能成功。 请帮助绘制此面板图。

谢谢, 兰吉特

csv file and sample panel plot

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您需要将数据转换为长格式

    library(tidyverse)
    df <- data.frame(
      stringsAsFactors = FALSE,
                 State = c("Andhra Pradesh","Assam",
                           "Chhattisgarh","Goa","Gujarat","Haryana",
                           "Himachal Pradesh","Jharkhand","Karnataka","Kerala","Madhya Pradesh",
                           "Maharashtra","Manipur","Meghalaya","Odisha",
                           "Rajasthan","Tamil Nadu","Telangana","Tripura",
                           "Uttar Pradesh","Uttarakhand"),
                    Wt = c(0.092066576,0.023850206,
                           0.209830138,0.021634993,0.104840239,0.047869204,
                           0.014229008,0.074248143,0.188853639,0.146991971,0.148019121,
                           0.189564031,0.085808664,0.011884387,0.094447032,
                           0.144303211,0.117343681,0.202923922,0.03803334,0.053658285,
                           0.119787823),
               Average = c(0.169362016,0.034176857,
                           0.186025075,0.016147401,0.130255382,0.062373442,
                           0.010081942,0.046698501,0.226191488,0.111300912,0.159568882,
                           0.183921131,0.137737491,0.00330759,0.07948901,
                           0.128878331,0.126884204,0.202655408,0.020871119,0.079228524,
                           0.11927443),
              Observed = c(0.083424473,NA,0.143548462,
                           0.010416667,0.006917477,0.061286714,0.077690577,NA,
                           0.1236367,0.279077323,0.181443002,0.222805733,
                           0.065743945,0.077922078,0.093420292,0.140944809,0.113274769,
                           NA,0.021522733,0.065261781,0.106522255)
    ) %>% 
      pivot_longer(Wt:Observed)
    
    ggplot(data = df, 
           mapping = aes(x = name, y = value, fill = name))+
      geom_col()+
      geom_text(label = round(df$value, 2), 
                vjust = -0.8) +
      facet_wrap(~State)
    

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多