r语言 - 如何在ggplot中排斥标签



如果下面的例子中的标签是重叠的,我们如何实现一个击退选项?谢谢!

means <- df %>% 
group_by(cyl) %>% 
summarize(across(c(wt, mpg), mean))
ggplot(df)  +
aes(x=wt, y=mpg, color=cyl, shape=cyl) + 
geom_point() + 
geom_point(size=4, data=means) + 
geom_label(aes(label=cyl), color="black", data=means) -> fig
fig

如果我从ggrepel package中加入geom_label_repel()

fig + geom_label_repel()

我得到错误:

geom_label_repel requires the gollowing missing aesthetics: label

您需要映射label,以便geom_label_repel"看到";它。它不能直接看到其他地球的映射。只是本身和顶部ggplot调用。因此,您有两个选择。

直接在函数内

geom_label_repel(mapping = aes(label = cyl))

或在顶部ggplot呼叫

ggplot(data = df, mapping = aes(label = cyl)) +

注意,如果你想标记means点,你可能必须指定data,正如Vincent在评论中提到的。

最新更新