R:定义两个特征的 ggplot box-plot 的轴
R: defining the axes of a ggplot box-plot of two features
我有这个以 EJ(埃焦耳)为单位的煤炭和可再生能源年度能源消耗的小型数据集:
Year Coal_cons Renewable_cons
1 1965 58.10 0.21
2 1966 58.77 0.23
3 1967 57.82 0.24
4 1968 58.68 0.26
5 1969 60.48 0.27
6 1970 61.41 0.30
7 1971 61.08 0.32
8 1972 61.76 0.35
9 1973 63.60 0.37
10 1974 63.66 0.39
11 1975 64.89 0.39
12 1976 67.28 0.43
13 1977 69.27 0.47
14 1978 70.05 0.51
15 1979 73.31 0.56
16 1980 75.09 0.60
17 1981 76.14 0.63
18 1982 76.98 0.74
19 1983 79.36 0.84
20 1984 82.80 0.96
21 1985 86.35 1.01
22 1986 87.32 1.15
23 1987 90.76 1.21
24 1988 93.47 1.26
25 1989 94.37 1.40
26 1990 93.22 1.58
27 1991 92.31 1.66
28 1992 91.98 1.75
29 1993 92.43 1.82
30 1994 92.78 1.91
31 1995 93.44 2.01
32 1996 95.66 2.04
33 1997 95.50 2.20
34 1998 94.89 2.31
35 1999 95.48 2.46
36 2000 98.70 2.64
37 2001 100.27 2.75
38 2002 104.20 3.10
39 2003 113.39 3.37
40 2004 121.19 3.87
41 2005 130.21 4.37
42 2006 137.05 5.03
43 2007 144.80 5.94
44 2008 146.77 7.16
45 2009 144.53 8.24
46 2010 151.19 9.70
47 2011 158.46 11.12
48 2012 159.07 12.60
49 2013 161.98 14.36
50 2014 161.84 16.03
51 2015 157.84 18.08
52 2016 155.50 20.06
53 2017 156.09 23.04
54 2018 158.79 25.83
55 2019 157.86 28.98
我想实现下面的代码,所以我实现了与图片类似的输出:
但是,我不清楚如何在单独的列中定义轴。
我如何设置我的坐标轴以获得与图片上的相似的输出?
这是一个tidyverse
解决方案。
library(tidyverse)
df %>%
pivot_longer(2:3) %>% # pivot_longer to one column for names and one for values
ggplot(aes(x = name, y = value, color = name)) +
geom_boxplot() +
geom_point(position = position_jitter(width = 0.3)) # position_jitter for the dots
这是使用分面的替代方法,因此第二个箱线图更易于阅读。你失去了直接比较 y 尺度的能力。
df %>%
pivot_longer(2:3) %>%
ggplot(aes(x = name, y = value, color = name)) +
geom_boxplot() +
geom_point(position = position_jitter(width = 0.3)) +
facet_wrap(~name, scales = "free")
这里是一个dput()
的数据。
structure(list(Year = c(1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973,
1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2019),
Coal_cons = c(58.1, 58.77, 57.82, 58.68, 60.48, 61.41, 61.08,
61.76, 63.6, 63.66, 64.89, 67.28, 69.27, 70.05,
73.31, 75.09, 76.14, 76.98, 79.36, 82.8, 86.35,
87.32, 90.76, 93.47, 94.37, 93.22, 92.31, 91.98,
92.43, 92.78, 93.44, 95.66, 95.5, 94.89, 95.48,
98.7, 100.27, 104.2, 113.39, 121.19, 130.21,
137.05, 144.8, 146.77, 144.53, 151.19, 158.46,
159.07, 161.98, 161.84, 157.84, 155.5, 156.09,
158.79, 157.86),
Renewable_cons = c(0.21, 0.23, 0.24, 0.26, 0.27, 0.3, 0.32,
0.35, 0.37, 0.39, 0.39, 0.43, 0.47, 0.51,
0.56, 0.6, 0.63, 0.74, 0.84, 0.96, 1.01,
1.15, 1.21, 1.26, 1.4, 1.58, 1.66, 1.75,
1.82, 1.91, 2.01, 2.04, 2.2, 2.31, 2.46,
2.64, 2.75, 3.1, 3.37, 3.87, 4.37, 5.03,
5.94, 7.16, 8.24, 9.7, 11.12, 12.6, 14.36,
16.03, 18.08, 20.06, 23.04, 25.83, 28.98)),
class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"),
row.names = c(NA, -55L))
我有这个以 EJ(埃焦耳)为单位的煤炭和可再生能源年度能源消耗的小型数据集:
Year Coal_cons Renewable_cons
1 1965 58.10 0.21
2 1966 58.77 0.23
3 1967 57.82 0.24
4 1968 58.68 0.26
5 1969 60.48 0.27
6 1970 61.41 0.30
7 1971 61.08 0.32
8 1972 61.76 0.35
9 1973 63.60 0.37
10 1974 63.66 0.39
11 1975 64.89 0.39
12 1976 67.28 0.43
13 1977 69.27 0.47
14 1978 70.05 0.51
15 1979 73.31 0.56
16 1980 75.09 0.60
17 1981 76.14 0.63
18 1982 76.98 0.74
19 1983 79.36 0.84
20 1984 82.80 0.96
21 1985 86.35 1.01
22 1986 87.32 1.15
23 1987 90.76 1.21
24 1988 93.47 1.26
25 1989 94.37 1.40
26 1990 93.22 1.58
27 1991 92.31 1.66
28 1992 91.98 1.75
29 1993 92.43 1.82
30 1994 92.78 1.91
31 1995 93.44 2.01
32 1996 95.66 2.04
33 1997 95.50 2.20
34 1998 94.89 2.31
35 1999 95.48 2.46
36 2000 98.70 2.64
37 2001 100.27 2.75
38 2002 104.20 3.10
39 2003 113.39 3.37
40 2004 121.19 3.87
41 2005 130.21 4.37
42 2006 137.05 5.03
43 2007 144.80 5.94
44 2008 146.77 7.16
45 2009 144.53 8.24
46 2010 151.19 9.70
47 2011 158.46 11.12
48 2012 159.07 12.60
49 2013 161.98 14.36
50 2014 161.84 16.03
51 2015 157.84 18.08
52 2016 155.50 20.06
53 2017 156.09 23.04
54 2018 158.79 25.83
55 2019 157.86 28.98
我想实现下面的代码,所以我实现了与图片类似的输出:
但是,我不清楚如何在单独的列中定义轴。
我如何设置我的坐标轴以获得与图片上的相似的输出?
这是一个tidyverse
解决方案。
library(tidyverse)
df %>%
pivot_longer(2:3) %>% # pivot_longer to one column for names and one for values
ggplot(aes(x = name, y = value, color = name)) +
geom_boxplot() +
geom_point(position = position_jitter(width = 0.3)) # position_jitter for the dots
这是使用分面的替代方法,因此第二个箱线图更易于阅读。你失去了直接比较 y 尺度的能力。
df %>%
pivot_longer(2:3) %>%
ggplot(aes(x = name, y = value, color = name)) +
geom_boxplot() +
geom_point(position = position_jitter(width = 0.3)) +
facet_wrap(~name, scales = "free")
这里是一个dput()
的数据。
structure(list(Year = c(1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973,
1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2019),
Coal_cons = c(58.1, 58.77, 57.82, 58.68, 60.48, 61.41, 61.08,
61.76, 63.6, 63.66, 64.89, 67.28, 69.27, 70.05,
73.31, 75.09, 76.14, 76.98, 79.36, 82.8, 86.35,
87.32, 90.76, 93.47, 94.37, 93.22, 92.31, 91.98,
92.43, 92.78, 93.44, 95.66, 95.5, 94.89, 95.48,
98.7, 100.27, 104.2, 113.39, 121.19, 130.21,
137.05, 144.8, 146.77, 144.53, 151.19, 158.46,
159.07, 161.98, 161.84, 157.84, 155.5, 156.09,
158.79, 157.86),
Renewable_cons = c(0.21, 0.23, 0.24, 0.26, 0.27, 0.3, 0.32,
0.35, 0.37, 0.39, 0.39, 0.43, 0.47, 0.51,
0.56, 0.6, 0.63, 0.74, 0.84, 0.96, 1.01,
1.15, 1.21, 1.26, 1.4, 1.58, 1.66, 1.75,
1.82, 1.91, 2.01, 2.04, 2.2, 2.31, 2.46,
2.64, 2.75, 3.1, 3.37, 3.87, 4.37, 5.03,
5.94, 7.16, 8.24, 9.7, 11.12, 12.6, 14.36,
16.03, 18.08, 20.06, 23.04, 25.83, 28.98)),
class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"),
row.names = c(NA, -55L))