将ggplot2 facet代码从直方图修改为QQplot

Modify ggplot2 facet code from histogram to QQplot

我正在创建一大组图表来查看某些数据的分布。 为此,我想创建两种类型的图:

  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

试试这个:

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()

输出