如何修改ggplot图例项内容:将西班牙语标签替换为自定义英文标识
问题原因
你使用expss包的apply_labels设置的是数据集的元数据值标签,ggplot默认不会读取这类标注信息,因此修改不会同步到图表图例。可通过以下两种方案解决:
方案1:直接修改原始数据列的取值(改动永久生效,后续所有图表都适用)
如果你的edad列是字符类型,直接替换对应取值即可:
# 替换指定取值,其余分类保留原有内容 Flow$edad <- ifelse(Flow$edad == "70 o más", "70+", Flow$edad)
如果edad列是因子类型,修改对应水平值:
levels(Flow$edad)[levels(Flow$edad) == "70 o más"] <- "70+"
修改完再运行你原来的绘图代码即可生效。
方案2:在ggplot图层中直接设置图例标签(无需改动原始数据,仅对当前图表生效)
在你的绘图代码中新增scale_color_discrete配置,手动指定图例标签即可,你需要按你edad列的分类顺序,补充所有分类对应的英文名称:
chart<-ggplot()+ geom_line(data=Flow %>% aes(x=date, color=edad), stat="count") + scale_x_date(date_minor_breaks = "1 month", date_labels = "%Y (%b)") + # 新增此行,labels按你现有edad分类的顺序填写对应英文即可 scale_color_discrete(labels = c("18-30", "31-50", "51-69", "70+")) + labs(color="Age")+ ggtitle("Number of Entrances, 2017-2021") ggplotly(chart)
内容的提问来源于stack exchange,提问作者ntcha
相关产品推荐
相关产品推荐

