The raw challenger o-ring data shows the o-ring erosion and blow-by events on shuttle launches leading up to the Challenger disaster.
This dataset was sourced from tufte
Presented in order of launch date, there are obvious signs of damage on some flights, but it’s difficult to see trends in this presentation.
library(dplyr)
library(ggplot2)
library(emphatic)
challenger
#> flight temp erosion blowby damage date
#> 1 1 66 0 0 0 1981-04-12
#> 2 2 70 1 0 4 1981-11-12
#> 3 3 69 0 0 0 1982-03-22
#> 4 5 68 0 0 0 1982-11-11
#> 5 6 67 0 0 0 1983-04-04
#> 6 7 72 0 0 0 1983-06-18
#> 7 8 73 0 0 0 1983-08-30
#> 8 9 70 0 0 0 1983-11-28
#> 9 41-B 57 1 0 4 1984-02-03
#> 10 41-C 63 1 0 2 1984-04-06
#> 11 41-D 70 1 0 4 1984-08-30
#> 12 41-G 78 0 0 0 1984-10-05
#> 13 51-A 67 0 0 0 1984-11-08
#> 14 51-C 53 3 2 11 1985-01-24
#> 15 51-D 67 0 0 0 1985-04-12
#> 16 51-B 75 0 0 0 1985-04-29
#> 17 51-G 70 0 0 0 1985-06-17
#> 18 51-F 81 0 0 0 1985-07-29
#> 19 51-I 76 0 0 0 1985-08-27
#> 20 51-J 79 0 0 0 1985-10-03
#> 21 61-A 75 0 2 4 1985-10-30
#> 22 61-B 76 0 0 0 1985-11-26
#> 23 61-C 58 1 0 4 1986-01-12
When ordered by decreasing temperature, a trend is somewhat apparent in the data i.e. lower temperatures have more incidents.
Finding this trend still requires close inspection of the data.
challenger %>%
arrange(desc(temp))
#> flight temp erosion blowby damage date
#> 1 51-F 81 0 0 0 1985-07-29
#> 2 51-J 79 0 0 0 1985-10-03
#> 3 41-G 78 0 0 0 1984-10-05
#> 4 51-I 76 0 0 0 1985-08-27
#> 5 61-B 76 0 0 0 1985-11-26
#> 6 51-B 75 0 0 0 1985-04-29
#> 7 61-A 75 0 2 4 1985-10-30
#> 8 8 73 0 0 0 1983-08-30
#> 9 7 72 0 0 0 1983-06-18
#> 10 2 70 1 0 4 1981-11-12
#> 11 9 70 0 0 0 1983-11-28
#> 12 41-D 70 1 0 4 1984-08-30
#> 13 51-G 70 0 0 0 1985-06-17
#> 14 3 69 0 0 0 1982-03-22
#> 15 5 68 0 0 0 1982-11-11
#> 16 6 67 0 0 0 1983-04-04
#> 17 51-A 67 0 0 0 1984-11-08
#> 18 51-D 67 0 0 0 1985-04-12
#> 19 1 66 0 0 0 1981-04-12
#> 20 41-C 63 1 0 2 1984-04-06
#> 21 61-C 58 1 0 4 1986-01-12
#> 22 41-B 57 1 0 4 1984-02-03
#> 23 51-C 53 3 2 11 1985-01-24
{emphatic}
The cluster of damage at lower temperatures is now much more visually apparent.
challenger %>%
arrange(desc(temp)) %>%
hl(palette = scale_color_viridis_c(option = 'B'), cols = 'temp') %>%
hl(
scale_color_gradient(low = 'pink', high = 'red'),
rows = damage > 0,
cols = damage
)
flight temp erosion blowby damage date
1 51-F 81 0 0 0 1985-07-29
2 51-J 79 0 0 0 1985-10-03
3 41-G 78 0 0 0 1984-10-05
4 51-I 76 0 0 0 1985-08-27
5 61-B 76 0 0 0 1985-11-26
6 51-B 75 0 0 0 1985-04-29
7 61-A 75 0 2 4 1985-10-30
8 8 73 0 0 0 1983-08-30
9 7 72 0 0 0 1983-06-18
10 2 70 1 0 4 1981-11-12
11 9 70 0 0 0 1983-11-28
12 41-D 70 1 0 4 1984-08-30
13 51-G 70 0 0 0 1985-06-17
14 3 69 0 0 0 1982-03-22
15 5 68 0 0 0 1982-11-11
16 6 67 0 0 0 1983-04-04
17 51-A 67 0 0 0 1984-11-08
18 51-D 67 0 0 0 1985-04-12
19 1 66 0 0 0 1981-04-12
20 41-C 63 1 0 2 1984-04-06
21 61-C 58 1 0 4 1986-01-12
22 41-B 57 1 0 4 1984-02-03
23 51-C 53 3 2 11 1985-01-24
{emphatic}
damage
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Expand temperature range to include challenger launch temperature
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
challenger_expanded <- challenger %>%
mutate(temp = factor(temp, levels = 30:81)) %>%
tidyr::complete(temp) %>%
arrange(desc(temp)) %>%
as.data.frame() %>%
mutate(temp = as.numeric(levels(temp))[temp]) %>%
select(flight, everything()) %>%
mutate(
flight = if_else(temp == 31, "Challenger", flight)
)
challenger_expanded %>%
hl(scale_color_viridis_c(option = 'B'), cols = temp, show_legend = TRUE) %>%
hl(
scale_color_gradient(low = 'lightblue', high = 'orange'),
rows = !is.na(damage),
cols = damage,
show_legend = TRUE
) %>%
hl('firebrick1', rows = temp == 31, cols = flight) %>%
hl_adjust(na = '')
flight temp erosion blowby damage date
1 51-F 81 0 0 0 1985-07-29
2 80
3 51-J 79 0 0 0 1985-10-03
4 41-G 78 0 0 0 1984-10-05
5 77
6 51-I 76 0 0 0 1985-08-27
7 61-B 76 0 0 0 1985-11-26
8 51-B 75 0 0 0 1985-04-29
9 61-A 75 0 2 4 1985-10-30
10 74
11 8 73 0 0 0 1983-08-30
12 7 72 0 0 0 1983-06-18
13 71
14 2 70 1 0 4 1981-11-12
15 9 70 0 0 0 1983-11-28
16 41-D 70 1 0 4 1984-08-30
17 51-G 70 0 0 0 1985-06-17
18 3 69 0 0 0 1982-03-22
19 5 68 0 0 0 1982-11-11
20 6 67 0 0 0 1983-04-04
21 51-A 67 0 0 0 1984-11-08
22 51-D 67 0 0 0 1985-04-12
23 1 66 0 0 0 1981-04-12
24 65
25 64
26 41-C 63 1 0 2 1984-04-06
27 62
28 61
29 60
30 59
31 61-C 58 1 0 4 1986-01-12
32 41-B 57 1 0 4 1984-02-03
33 56
34 55
35 54
36 51-C 53 3 2 11 1985-01-24
37 52
38 51
39 50
40 49
41 48
42 47
43 46
44 45
45 44
46 43
47 42
48 41
49 40
50 39
51 38
52 37
53 36
54 35
55 34
56 33
57 32
58 Challenger 31
59 30
temp: 30 35 40 45 50 55 60 65 70 75 80
damage: 0.00 1.25 2.50 3.75 5.00 6.25 7.50 8.75 10.00