English · PDF 473
这有一点帮助,但如果你仔细观察左上角,你会注意到有两个标签几乎重叠在一起。这是因为 compact 和 subcompact 类别中最好的汽车的高速公路里程和排量完全相同。我们无法通过对每个标签应用相同的变换来解决这个问题。相反,我们可以使用 Kamil Slowikowski 开发的 ggrepel 包。这个实用的包会自动调整标签的位置,使它们不会重叠:
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 )

注意这里使用的另一个实用技巧:我添加了一层较大的空心点,以突出显示我已标注的点。
有时你可以使用同样的方法,用直接放置在图上的标签来代替图例。对于这张图来说效果不算太好,但也不算太差。(theme(legend.position = "none") 会关闭图例——我们稍后会详细讨论。)
class_avg <- mpg %>% group_by(class) %>% summarize( displ = median(displ), hwy = median(hwy) )