在研究中使用 ggplot 2 到 scatterplot/boxplot 作为体重和身高变量

use ggplot 2 to scatterplot/boxplot for weight and height variable in a research

我要找出一些图表,包括

  1. 不同时间点身高体重变量的散点图

  2. 关于性别的连续变量箱线图

  3. 显示体重增加或身高随时间增加趋势的图表。

附上数据集,变量中,

数据:

structure(list(X = 1:136, Sex = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), 
WT2 = c(13.6, 12.7, 12.6, 14.8, 12.7, 11.9, 11.5, 15, 13.2, 16.9, 12.7, 
11.4, 14.2, 17.2, 13.7, 14.2, 15.9, 14.3, 13.3, 15, 13.8, 11.3, 14.3, 
13.4, 12.2, 15.9, 11.5, 14.2, 14.6, 11.8, 13.8, 13.6, 12.2, 10.1, 12.6, 
12, 14.1, 13.7, 12.2, 13.3, 13.2, 12.2, 13.8, 15, 12.8, 14, 13.6, 12.2, 
15.4, 13.6, 12.2, 13.6, 14.2, 15.4, 17.7, 15.2, 12.2, 14.5, 12.7, 18.6, 
13.2, 11.3, 16.3, 12.2, 14.1, 12.7, 13.6, 11.3, 17, 13.2, 13.3, 11.3, 
11.6, 11.6, 12.4, 17, 12.2, 15, 14.5, 10.2, 12.2, 12.8, 13.6, 10.9, 
13.1, 13.4, 11.8, 12.7, 11.8, 14.1, 10.9, 11.8, 13.6, 12.7, 12.3, 11.5, 
12.6, 14.1, 11.5, 12, 10.9, 12.7, 11.3, 11.8, 15.4, 10.9, 13.2, 14.3, 
11.1, 13.6, 12.9, 13.5, 16.3, 13.6, 10.2, 12.6, 12.9, 13.3, 13.4, 12.7, 
12.2, 15.4, 12.7, 13.2, 12.4, 10.9, 13.4, 10.6, 11.8, 14.2, 12.7, 13.2, 
11.8, 13.3, 13.2, 15.9), HT2 = c(90.2, 91.4, 86.4, 87.6, 86.7, 88.1, 
82.2, 91.7, 83.8, 91, 87.4, 84.2, 88.4, 87.7, 89.6, 91.4, 90.9, 86.4, 
90, 91.4, 91.4, 81.3, 90.6, 92.2, 87.1, 91.4, 89.7, 98.2, 88.4, 85.9, 
88.9, 85.1, 86.4, 82.2, 86, 86.4, 90.6, 85.1, 87.2, 89, 84.6, 85.6, 
89.6, 83.9, 84.8, 91.4, 88.4, 90.2, 93.5, 87.7, 89.1, 87, 89.1, 87.5, 
93.1, 90.9, 87.7, 89.1, 88, 95.2, 84, 81.6, 95.3, 90.3, 88.3, 87, 87.7, 
90, 89.6, 90.3, 89.4, 85.5, 90.2, 82.2, 85.6, 97.3, 87.1, 88.9, 87.6, 
82.6, 87.1, 84, 83.6, 81.4, 89.7, 88.4, 86.4, 83.8, 87.6, 94, 82, 86.4, 
88.9, 86.7, 86.4, 86.4, 83.8, 88.9, 85.9, 86.2, 85.1, 88.6, 83, 88.9, 
89.7, 81.3, 88.7, 88.4, 85.1, 91.4, 87.6, 86.1, 94, 85.9, 82.2, 88.2, 
87.5, 88.6, 86.9, 86.4, 80.9, 90, 94, 89.7, 86.4, 82.6, 86.4, 81.8, 
86.2, 86, 91.4, 88.9, 88.6, 86.4, 94, 89.2), WT9 = c(41.5, 31, 30.1, 
34.1, 24.5, 29.8, 26, 32.1, 30.1, 37.9, 27, 25.9, 31.1, 34.6, 34.6, 
43.1, 33.2, 30.7, 31.6, 32, 33.4, 29.4, 30.2, 31.1, 27.6, 32.3, 29, 
31.4, 33.3, 29.7, 33.4, 43.2, 27.3, 19.9, 31.5, 31.1, 31.3, 28.4, 31.9, 
32.9, 29.5, 26, 28.4, 28.8, 29.2, 34.1, 27.7, 30.7, 34.4, 31.3, 30.2, 
26.5, 33.6, 29, 39.9, 29.6, 24.4, 26.3, 25.8, 66.8, 30.2, 26.8, 32.1, 
41.1, 35.1, 31, 32.5, 27.8, 44.4, 40.5, 29.9, 22.8, 30, 24.3, 29.9, 
44.5, 31.8, 32.1, 39.2, 23.7, 26, 36.3, 29.9, 22.2, 34.4, 35.5, 33, 
25.7, 29.2, 31.7, 23.7, 35.3, 39, 30.8, 29.3, 28, 33, 47.4, 27.6, 34.2, 
28.1, 27.5, 23.9, 32.2, 29.4, 22, 28.8, 38.8, 36, 31.3, 26.9, 33.3, 
36.2, 29.5, 23.4, 33.8, 34.5, 34.4, 38.2, 31.7, 26.6, 34.2, 27.7, 28.5, 
30.5, 26.6, 39, 25, 25.6, 34.2, 29.8, 27.9, 27, 41.4, 41.6, 42.4 ), HT9 
= c(139.4, 144.3, 136.5, 135.4, 128.9, 136, 128.5, 138.7, 133.2, 145.6, 
132.4, 133.7, 138.3, 134.6, 139, 146, 133.2, 133.3, 130.3, 136.4, 
144.5, 125.4, 135.8, 139.9, 136.8, 140.6, 138.6, 140, 139.9, 137.8, 
139.5, 134.1, 135.3, 122, 133.4, 134.3, 139.5, 133.3, 132.5, 131.4, 
134.3, 129.1, 132.1, 130.1, 136.2, 140.1, 129.1, 132.5, 147.4, 136, 
138.2, 129, 140.2, 130.9, 144.8, 135, 130.4, 129.8, 132.9, 147.5, 
137.5, 128, 142.2, 142.2, 141.2, 133.7, 133.4, 134.8, 141.5, 137.1, 
136.1, 130.6, 136, 128, 132.4, 152.5, 138.4, 135.2, 142.3, 129.1, 
133.2, 136.3, 133.1, 123.2, 135.8, 139.5, 139.4, 124.2, 135.6, 144.1, 
123.8, 134.6, 137.2, 139.8, 128.8, 134.2, 136.5, 140.8, 132.1, 137, 
129, 139.4, 125.6, 137.1, 133.6, 121.4, 133.6, 134.1, 139.4, 138.1, 
133.2, 138.4, 139.5, 132.8, 129.8, 144.8, 138.9, 140.3, 143.8, 133.6, 
123.5, 139.9, 136.1, 135.8, 131.9, 133.1, 130.9, 126.3, 135.9, 135, 
135.5, 136.5, 134, 138.2, 142, 140.8), LG9 = c(31.6, 26, 26.6, 28.2, 
24.2, 26.7, 26.5, 26.3, 27.6, 29, 26, 25.8, 27.3, 30.6, 28.9, 32.4, 
28.5, 27.3, 27.5, 28, 27, 27.7, 26.7, 27.2, 25.8, 27.9, 24.6, 28.2, 30, 
26.4, 27.7, 31.5, 25, 21.8, 26.9, 28.8, 27, 26.4, 28.6, 28.2, 26, 25.6, 
26.5, 25.8, 25.5, 29.9, 26.5, 26.8, 28.2, 28.8, 27.6, 25.5, 28.1, 26.3, 
29.3, 28.5, 24, 25, 24.2, 40.4, 28, 26.5, 28, 30.2, 29, 26.7, 28.4, 
26.9, 31.9, 31.8, 27.7, 23.4, 27.2, 25.1, 27.5, 32.7, 28.3, 26.9, 31.6, 
25.9, 26.7, 28.4, 26.2, 24.9, 32.3, 30, 26.9, 26.2, 26.3, 27.2, 25.5, 
30.4, 32.4, 26, 28.3, 25, 29, 32.3, 26.3, 27.3, 27.4, 25.7, 24.5, 28.2, 
26.6, 24.4, 26.5, 31.1, 28.2, 27.6, 26.3, 29.4, 28, 27.6, 22.6, 28.3, 
30.5, 31.2, 29.8, 27.5, 27.2, 29.1, 26.7, 25.5, 28.6, 25.4, 29.3, 25, 
23.7, 27.6, 27, 26.5, 26.5, 32.5, 31, 32.6), ST9 = c(74L, 73L, 64L, 
75L, 63L, 77L, 45L, 61L, 70L, 61L, 70L, 68L, 59L, 87L, 71L, 98L, 82L,          
73L, 68L, 65L, 92L, 70L, 70L, 63L, 73L, 69L, 61L, 74L, 63L, 58L, 52L, 
46L, 69L, 30L, 45L, 61L, 89L, 65L, 72L, 91L, 81L, 57L, 66L, 65L, 47L, 
90L, 67L, 80L, 70L, 60L, 80L, 49L, 85L, 56L, 97L, 81L, 59L, 47L, 60L, 
121L, 82L, 64L, 67L, 66L, 67L, 68L, 74L, 65L, 104L, 79L, 83L, 60L, 67L, 
44L, 76L, 81L, 59L, 67L, 72L, 40L, 40L, 54L, 67L, 58L, 57L, 61L, 64L, 
48L, 61L, 74L, 50L, 58L, 80L, 57L, 44L, 46L, 57L, 69L, 51L, 44L, 48L, 
68L, 22L, 59L, 58L, 44L, 58L, 57L, 64L, 64L, 58L, 73L, 52L, 52L, 60L, 
107L, 62L, 88L, 78L, 52L, 40L, 71L, 30L, 76L, 59L, 75L, 38L, 50L, 45L, 
62L, 57L, 66L, 54L, 44L, 56L, 74L), WT18 = c(110.2, 79.4, 76.3, 74.5, 
55.7, 68.2, 78.2, 67.8, 66.5, 70.5, 57.3, 50.3, 70.8, 73.7, 75.2, 83.1, 
74.3, 72.2, 88.6, 71, 75.9, 64.9, 65.6, 66.4, 59, 68.1, 67.7, 68.5, 
79.3, 63.4, 68.8, 84.2, 68, 42.9, 74.8, 69.2, 72.4, 63.8, 84.8, 71.8, 
73, 57.5, 69.5, 66.1, 70.6, 71.4, 61.1, 74, 78.6, 72.7, 67.8, 54, 67.4, 
66.8, 74.2, 62.7, 58.1, 68.8, 61.6, 86.1, 69.7, 66.4, 78.9, 88.8, 62.5, 
65.9, 56.9, 49.9, 55.3, 65.9, 62.3, 47.4, 57.3, 50, 58.8, 80.2, 59.9, 
56.3, 67.9, 52.9, 58.5, 73.2, 54.7, 44.1, 70.5, 60.6, 73.2, 57.2, 56.4, 
56.6, 46.3, 63.3, 65.4, 60.1, 55, 55.7, 71.2, 65.5, 57.2, 58.2, 56, 
64.5, 53, 52.4, 56.8, 49.2, 55.6, 77.8, 69.6, 56.2, 52.5, 64.9, 59.3, 
54.2, 49.8, 62.6, 66.6, 65.3, 65.9, 59, 47.4, 60.4, 56.3, 61.7, 52.4, 
52.1, 58.4, 52.8, 60.4, 61, 67.4, 54.3, 56.3, 97.7, 68.1, 63.1), HT18 = 
c(179, 195.1, 183.7, 178.7, 171.5, 181.8, 172.5, 181.6, 174.6, 190.4, 
173.8, 172.6, 185.2, 178.4, 177.6, 183.5, 178.1, 177, 172.9, 180.2, 
188.4, 169.4, 180.2, 189, 182.4, 185.8, 180.7, 178.7, 183.4, 183, 177, 
175, 179.9, 160.9, 175.1, 176.8, 186.3, 180.4, 176.4, 174, 181, 170.1, 
175.2, 170.3, 185.1, 182.7, 169.4, 172.8, 194.3, 181.1, 181.3, 167, 
180.7, 174.5, 192.8, 176.4, 180.8, 174.1, 171, 188, 180.8, 172.6, 
183.7, 180.7, 178.8, 176.4, 158.9, 166, 162.2, 167.8, 170.9, 164.9, 
168.1, 164, 163.3, 183.2, 167, 163.8, 174, 163, 167.1, 168.1, 163, 
154.6, 170.3, 170.6, 175.1, 156.5, 160.3, 170.8, 156.5, 165.2, 169.8, 
171.2, 160.4, 163.8, 169.6, 172.7, 162.4, 166.8, 157.1, 181.1, 158.4, 
165.6, 166.7, 156.5, 168.1, 165.3, 163.7, 173.7, 163.9, 169.2, 170.1, 
166, 164.2, 176, 170.9, 169.2, 172, 163, 154.5, 172.5, 175.6, 167.2, 
164, 162.1, 161.6, 153.6, 177.5, 169.8, 173.5, 166.8, 166.2, 162.8, 
168.6, 169.2), LG18 = c(44.1, 36.1, 36.9, 37.3, 31, 37, 39.1, 36.4, 
37.3, 33.9, 33.3, 31.6, 36.6, 39.2, 36.8, 38, 37.8, 36.5, 40.4, 36.7, 
36.5, 35.7, 35.4, 35.3, 33.5, 34.2, 34.3, 37, 41.3, 33.2, 37.9, 39.2, 
35.1, 30, 37.2, 39.7, 36.4, 35.1, 40.9, 36.5, 36.9, 33.3, 36.6, 35, 35, 
36.9, 35.3, 36.5, 36.8, 38.3, 36.5, 32.3, 35.1, 36.2, 36.4, 36, 30.9, 
35.1, 34.4, 40, 36.8, 36.4, 37.9, 39, 35.4, 35.5, 34.6, 33.8, 35.1, 
39.3, 36.3, 31.8, 35, 31.2, 36.2, 42.9, 36.5, 32.6, 37.5, 37.7, 34.5, 
37.2, 33.2, 32.4, 40.1, 38.2, 35.1, 35.6, 34.6, 32.6, 32.9, 38.5, 38.6, 
33, 36.3, 33.2, 38.8, 36.2, 36.5, 34.3, 37.8, 34.2, 32.4, 33.8, 32.7, 
33.5, 34.1, 39.8, 38.6, 34.2, 34.6, 36.7, 32.8, 34.9, 30.3, 35.8, 38.8, 
39, 35.7, 32.7, 32.2, 35.7, 34, 35.5, 34.8, 34.1, 33, 33.4, 34.3, 34.5, 
34.5, 33.6, 36.2, 42.5, 38.4, 37.9), ST18 = c(226L, 252L, 216L, 220L, 
200L, 215L, 152L, 166L, 189L, 183L, 193L, 202L, 208L, 227L, 204L, 226L, 
233L, 237L, 230L, 225L, 250L, 236L, 177L, 186L, 199L, 227L, 164L, 219L, 
241L, 228L, 214L, 214L, 221L, 145L, 191L, 177L, 251L, 174L, 242L, 256L, 
253L, 192L, 243L, 260L, 176L, 234L, 195L, 226L, 192L, 184L, 234L, 160L, 
231L, 170L, 257L, 235L, 188L, 200L, 200L, 233L, 210L, 206L, 248L, 211L, 
189L, 255L, 143L, 117L, 143L, 148L, 152L, 126L, 134L, 77L, 118L, 135L, 
118L, 96L, 131L, 108L, 99L, 105L, 122L, 146L, 126L, 124L, 100L, 118L, 
123L, 131L, 101L, 121L, 182L, 116L, 127L, 130L, 107L, 134L, 120L, 130L, 
101L, 149L, 112L, 136L, 118L, 110L, 104L, 138L, 108L, 134L, 108L, 141L, 
122L, 125L, 128L, 168L, 126L, 142L, 132L, 116L, 112L, 137L, 114L, 122L, 
121L, 148L, 107L, 140L, 125L, 124L, 123L, 89L, 135L, 125L, 142L, 142L), 
Soma = c(7, 4, 6, 2, 1.5, 3, 6, 4, 4, 3, 3, 3, 4, 3, 2.5, 4, 2.5, 2, 7, 
4, 1, 3, 4, 3, 2, 1, 4, 2, 3, 1.5, 1.5, 6, 3, 3, 3.5, 4, 2, 2, 6, 1.5, 
2, 3, 3, 3.5, 3.5, 2, 2, 4, 2, 4, 2, 2, 1, 4, 1.5, 1.5, 1.5, 2, 3, 4, 
3, 4, 1, 6, 3, 3, 5, 4, 5.5, 5.5, 4.5, 3, 5, 4, 5, 5.5, 5, 5, 5.5, 4, 
5, 6.5, 4.5, 3.5, 5.5, 4.5, 6, 5, 4.5, 4, 4, 5, 4.5, 4.5, 5, 5, 6, 4.5, 
5, 5, 5, 4, 5, 4, 4.5, 4, 4.5, 6.5, 5.5, 3.5, 4, 5, 4.5, 4, 4, 5, 5, 5, 
5.5, 5.5, 4, 4, 3, 4.5, 5, 4, 6.5, 5, 3.5, 5.5, 5, 4, 4.5, 7, 5.5, 
5.5)), .Names = c("X", "Sex", "WT2", "HT2", "WT9", "HT9", "LG9", "ST9", 
"WT18", "HT18", "LG18", "ST18", "Soma"), class = "data.frame", 
row.names = c(NA, -136L ))

如果你先整理你的数据,把年龄作为它自己的变量而不是隐藏在列名中,绘图就会变得简单得多:

library(tidyverse)

newdata.girls.tidy <- newdata.girls %>% 
    gather(var, val, matches('\d')) %>% 
    separate(var, c('var', 'age'), 2, convert = TRUE) %>% 
    spread(var, val)

newdata.girls.tidy %>% tbl_df()
#> # A tibble: 408 × 8
#>        X   Sex  Soma   age    HT    LG    ST    WT
#> *  <int> <int> <dbl> <int> <dbl> <dbl> <dbl> <dbl>
#> 1      1     0     7     2  90.2    NA    NA  13.6
#> 2      1     0     7     9 139.4  31.6    74  41.5
#> 3      1     0     7    18 179.0  44.1   226 110.2
#> 4      2     0     4     2  91.4    NA    NA  12.7
#> 5      2     0     4     9 144.3  26.0    73  31.0
#> 6      2     0     4    18 195.1  36.1   252  79.4
#> 7      3     0     6     2  86.4    NA    NA  12.6
#> 8      3     0     6     9 136.5  26.6    64  30.1
#> 9      3     0     6    18 183.7  36.9   216  76.3
#> 10     4     0     2     2  87.6    NA    NA  14.8
#> # ... with 398 more rows

#1
ggplot(newdata.girls.tidy, aes(WT, HT, color = age)) + geom_point()

#2
newdata.girls.tidy %>% 
    gather(var, val, HT:WT) %>% 
    ggplot(aes(var, val, fill = factor(Sex))) + 
    geom_boxplot()

#3
newdata.girls.tidy %>% 
    gather(var, val, HT, WT) %>% 
    ggplot(aes(age, val)) + 
    geom_point(alpha = 0.1) + 
    geom_smooth(method = 'gam', formula = y ~ s(x, k = 3)) + 
    facet_wrap(~var, scales = 'free_y')