首页 > 解决方案 > 将ggplot2 facet代码从直方图修改为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修改它:

单QQ图

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

标签: rggplot2facet

解决方案


尝试这个:

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

输出

ggplot


推荐阅读