我有一个小型的煤和可再生能源年度能源消耗(埃焦耳)数据集:
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
但是,我不清楚如何定义各个列中的轴。
如何设置轴以实现与图片所示轴相似的输出?
答案 0 :(得分:1)
这是一个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))