【问题标题】:Modify ggplot2 facet code from histogram to QQplot将ggplot2 facet代码从直方图修改为QQplot
【发布时间】:2020-10-02 07:34:06
【问题描述】:

我正在创建大量图表来查看一些数据的分布情况。 为此,我想创建两种图:

  1. 直方图
  2. QQ图

我在网上找到了这段很棒的代码,它已经对直方图进行了刻面,并且通过使用一些 tidyrpurrr 函数可以满足我的需求。 但是当我尝试为 QQ 情节修改它时,我不知道究竟需要做什么才能使其工作......

代码如下:

data.for.normality %>%
  keep(is.numeric) %>% 
  gather() %>% 
  ggplot(aes(value)) +
  facet_wrap(~ key, scales = "free", ncol = 3) +
  geom_histogram()

这是输出:

现在我想为这样的qqplots修改它:

所以在一个完美的世界里,我会得到相同的多面输出,包括变量名和所有,但不是直方图 --> qqplots

想法?

这是dput中的数据示例:

> dput(data[1:20,25:33])
structure(list(Medical.File...NEW..Secs. = c(16L, 25L, 23L, 13L, 
50L, 44L, 20L, 62L, 12L, 52L, 11L, 25L, 23L, 36L, 21L, 30L, 29L, 
31L, 44L, 37L), Mirshm..Secs. = c(65L, 277L, 63L, 76L, 49L, 52L, 
65L, 86L, 91L, 57L, 127L, 277L, 44L, 110L, 78L, 62L, 79L, 62L, 
110L, 74L), Mirshm..NEW..Secs. = c(59L, 91L, 33L, 24L, 24L, 18L, 
30L, 53L, 48L, 20L, 28L, 130L, 47L, 49L, 62L, 32L, 18L, 62L, 
22L, 59L), Payments..Secs. = c(76L, 69L, 138L, 87L, 99L, 60L, 
108L, 148L, 79L, 148L, 96L, 61L, 102L, 72L, 147L, 75L, 60L, 87L, 
72L, 65L), Payments..NEW..Secs. = c(39L, 36L, 48L, 58L, 62L, 
103L, 108L, 51L, 30L, 76L, 48L, 50L, 42L, 39L, 54L, 28L, 25L, 
52L, 34L, 62L), Update.A..Secs. = c(239L, 129L, 99L, 128L, 88L, 
79L, 98L, 127L, 138L, 229L, 249L, 99L, 128L, 66L, 70L, 79L, 98L, 
290L, 159L, 299L), Update.A..NEW..Secs. = c(62L, 91L, 52L, 76L, 
57L, 57L, 63L, 74L, 80L, 94L, 129L, 54L, 53L, 48L, 47L, 41L, 
45L, 128L, 160L, 128L), SUM.OLD..Secs. = c(583L, 791L, 590L, 
585L, 523L, 480L, 525L, 611L, 598L, 921L, 745L, 695L, 548L, 537L, 
663L, 632L, 982L, 912L, 656L, 738L), SUM.NEW..Secs. = c(285L, 
367L, 326L, 281L, 340L, 333L, 390L, 371L, 313L, 465L, 362L, 351L, 
338L, 404L, 363L, 368L, 362L, 492L, 446L, 424L)), row.names = c(NA, 
20L), class = "data.frame")

这里是纯文本:

data[1:20,25:33]
   Medical.File...NEW..Secs. Mirshm..Secs. Mirshm..NEW..Secs. Payments..Secs. Payments..NEW..Secs. Update.A..Secs. Update.A..NEW..Secs.
1                         16            65                 59              76                   39             239                   62
2                         25           277                 91              69                   36             129                   91
3                         23            63                 33             138                   48              99                   52
4                         13            76                 24              87                   58             128                   76
5                         50            49                 24              99                   62              88                   57
6                         44            52                 18              60                  103              79                   57
7                         20            65                 30             108                  108              98                   63
8                         62            86                 53             148                   51             127                   74
9                         12            91                 48              79                   30             138                   80
10                        52            57                 20             148                   76             229                   94
11                        11           127                 28              96                   48             249                  129
12                        25           277                130              61                   50              99                   54
13                        23            44                 47             102                   42             128                   53
14                        36           110                 49              72                   39              66                   48
15                        21            78                 62             147                   54              70                   47
16                        30            62                 32              75                   28              79                   41
17                        29            79                 18              60                   25              98                   45
18                        31            62                 62              87                   52             290                  128
19                        44           110                 22              72                   34             159                  160
20                        37            74                 59              65                   62             299                  128
   SUM.OLD..Secs. SUM.NEW..Secs.
1             583            285
2             791            367
3             590            326
4             585            281
5             523            340
6             480            333
7             525            390
8             611            371
9             598            313
10            921            465
11            745            362
12            695            351
13            548            338
14            537            404
15            663            363
16            632            368
17            982            362
18            912            492
19            656            446
20            738            424

【问题讨论】:

  • ggplot2::geom_qq() 怎么样?
  • 给出错误:
  • 错误:美学必须是有效的数据列。有问题的美学:x = 样本。

标签: r ggplot2 facet


【解决方案1】:

试试这个:

data.for.normality %>%
  keep(is.numeric) %>% 
  gather() %>% 
  # you have to specify the sample you want to use
  ggplot(aes(sample = value)) + 
  facet_wrap(~ key, scales = "free", ncol = 3) +
  stat_qq() + 
  stat_qq_line()

输出

【讨论】:

  • 非常感谢!我想问题是将 aes(value) 更改为 aes(sample=value)
猜你喜欢
  • 2018-09-07
  • 2014-01-15
  • 2020-09-10
  • 2015-08-24
  • 2021-11-10
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多