删除 geom_text_repel() 中的选定标签

问题描述

enter image description here

从上面的图中我想删除显示在每行中间的标签,只在行的开头和结尾保留标签,但不知道该怎么做。以下是我的情节的完整代码

income_data %>% 
 drop_na(quarter) %>% 
 ggplot(aes(x = q_year,y = household_final_consumption_expenditure,group = quintile,color = quintile))+
 geom_point()+
 geom_line()+
 labs(title = "Household Final Consumption Expenditure 2019-2020",caption = "Source: Statistics Canada",x = "",y = "")+
 theme(axis.text.y  = element_blank(),axis.ticks.y = element_blank())+
 ggrepel::geom_text_repel(aes(label = household_final_consumption_expenditure))

示例数据

structure(list(q_year = c("Q 1 2020","Q 2 2020","Q 3 2020","Q 1 2020","Q 3 2020"),quintile = structure(c(1L,1L,2L,3L,4L,4L),.Label = c("Lowest income quintile","Second income quintile","Third income quintile","Fourth income quintile","Highest income quintile"),class = "factor"),household_final_consumption_expenditure = c(15050,13932,15660,15460,14580,16415,18285,17095,19484,21124,19531,22436)),row.names = c(NA,-12L),class = c("tbl_df","tbl","data.frame"))

希望这个样本数据足够了。如果需要其他任何东西,请在评论中告诉我。

想要的剧情

enter image description here

请对此提出一些建议。

解决方法

ggplot2 提供了更改每个 geom_* 或层中使用的数据的能力。这可以包括类似 ~ 的函数。也许这会起作用,未经测试:

... +
 ggrepel::geom_text_repel(aes(label = household_final_consumption_expenditure),data = ~ subset(.,q_year %in% c(...)))

(用你想要的字符串替换 ... ... 这也可以是 ! q_year %in% "Q 2 2020" 或类似的。)我在那里使用 subset,但你也可以使用 {{1 }}。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...