forked from perlatex/R_for_Data_Science
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ggplot2_guides.Rmd
155 lines (119 loc) · 3.83 KB
/
ggplot2_guides.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# ggplot2之图例系统 {#ggplot2-guides}
这一章,我们一起学习ggplot2中的图例系统,内容相对简单,但还是推荐大家阅读[ggplot2官方文档](https://cran.r-project.org/web/packages/ggplot2/index.html)
## 图例系统
为了方便演示,我们还是用熟悉的配方`ggplot2::mpg`
```{r ggplot2-guides-1}
library(tidyverse)
mpg %>%
ggplot(aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point()
```
如果想调整图例的样式,可以使用`guides()`函数,用法类似上节课中的`theme`函数, 具体参数为:
- 要么是`字符串` (i.e. `"color = colorbar"` or `"color = legend"`),
- 要么是`特定的函数` (i.e. `color = guide_colourbar()` or `color = guide_legend()`)
```{r ggplot2-guides-2, out.width = '99%', echo = FALSE}
knitr::include_graphics("images/ggplot2_guides.jpg")
```
## 案例详解
```{r ggplot2-guides-3}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point() +
ggtitle("这是我的标题") +
labs(x = "x_displ", y = "y_hwy") +
guides(color = "legend")
```
```{r ggplot2-guides-4}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point() +
ggtitle("这是我的标题") +
labs(x = "x_displ", y = "y_hwy") +
guides(color = guide_bins(
title = "my title",
label.hjust = 1
)
)
```
```{r ggplot2-guides-5}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point() +
ggtitle("这是我的标题") +
labs(x = "x_displ", y = "y_hwy") +
guides(color = guide_legend(
ncol = 4
)
)
```
```{r ggplot2-guides-6}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point() +
ggtitle("这是我的标题") +
labs(x = "x_displ", y = "y_hwy") +
guides(color = guide_legend(
title = "标题好像有点高",
title.position = "top",
title.vjust = 5,
label.position = "left",
label.hjust = 1,
label.theme = element_text(size = 15,
face = "italic",
colour = "red",
angle = 0),
keywidth = 5,
reverse = TRUE
)
)
```
## 删除其中一个图例
```{r ggplot2-guides-7}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = class, size = cyl)) +
geom_point()
```
比如,我们想删除size这个图例,那么需要这样做
```{r ggplot2-guides-8}
mpg %>%
ggplot(aes(x = displ, y = hwy, color = class, size = cyl)) +
geom_point() +
guides(color = guide_legend("汽车类型"), # keep
size = FALSE # remove
)
```
## 小结
到了这里,ggplot2内容的差不多介绍完了,最后做下自我测试,能读懂下面代码(来源 Emi Tanaka)的意思?
```{r ggplot2-guides-9, eval=FALSE}
mtcars %>%
as_tibble() %>%
ggplot(aes(x = wt, y = mpg, shape = factor(vs), color = hp)) +
geom_point(size = 3) +
colorspace::scale_color_continuous_sequential(palette = "Dark Mint") +
scale_shape_discrete(labels = c("V-shaped", "Straight")) +
labs(
x = "Weight (1000 lbs)", y = "Miles per gallon",
title = "Motor Trend Car Road Tests",
shape = "Engine", color = "Horsepower"
) +
theme(
text = element_text(size = 18, color = "white"),
rect = element_rect(fill = "black"),
panel.background = element_rect(fill = "black"),
legend.key = element_rect(fill = "black"),
axis.text = element_text(color = "white"),
plot.title.position = "plot",
plot.margin = margin(10, 10, 10, 10)
) +
guides(
shape =
guide_legend(override.aes = list(color = "white"))
)
```
```{r ggplot2-guides-10, echo = F}
# remove the objects
# rm(list=ls())
```
```{r ggplot2-guides-11, echo = F, message = F, warning = F, results = "hide"}
pacman::p_unload(pacman::p_loaded(), character.only = TRUE)
```