##载入所需的R包

library(ggrepel)
## Loading required package: ggplot2
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ tibble  3.1.6     ✓ dplyr   1.0.9
## ✓ tidyr   1.2.0     ✓ stringr 1.4.0
## ✓ readr   2.1.1     ✓ forcats 0.5.1
## ✓ purrr   0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

##ggrepel包添加标签

best_in_class <- mpg %>%
  group_by(class) %>%
filter(row_number(desc(hwy)) == 1)#利用tidyverse包里的group_by和filter函数,找出每个class中hwy最高的数据。
ggplot(mpg, aes(displ, hwy)) +
  geom_point(aes(color = class))+ 
  geom_point(size = 3, shape = 1, data = best_in_class)+
  ggrepel::geom_label_repel(aes(label = model),data = best_in_class)+ #利用ggrepel包中的goem_label_repel函数添加标签并自动调整位置
  scale_color_brewer(palette = "Paired")+
  theme(plot.title = element_text(size = 25, face = "bold"),
        plot.subtitle = element_text(size = 18),axis.title = element_text(size = 16,color = "#222222",face = "bold"),
        axis.ticks = element_blank(),axis.text = element_text(size = 14),
        panel.grid.major.y = element_line(color = "#cbcbcb"), panel.grid.major.x = element_blank(), 
        panel.background = element_blank(), legend.title = element_text(size = 18,face = "bold"))