如何在ggplot2中修改facet strips标签为Year=年份格式?
解决分面标签格式修改问题
有两种简单方法可以把分面标签改成Year=2009这类格式,以下是具体实现:
方法一:提前修改数据中的年份列
直接把原数据的year列转换成带前缀的字符串格式,之后再绘图:
set.seed(1) df=data.frame(year=rep(2009:2013,each=4), quarter=rep(c("Q1","Q2","Q3","Q4"),5), sales=40:59+rnorm(20,sd=5)) # 修改year列格式 df$year <- paste0("Year=", df$year) library(ggplot2) ggplot(df) + geom_line(aes(x=quarter,y=sales,group=year))+ facet_wrap(.~year,strip.position = "top",scales="free")+ theme(strip.placement = "outside", axis.title.x=element_blank(), legend.position="none")
方法二:使用labeller函数动态修改标签
如果不想改动原始数据,可以在facet_wrap中通过labeller参数自定义标签格式:
set.seed(1) df=data.frame(year=rep(2009:2013,each=4), quarter=rep(c("Q1","Q2","Q3","Q4"),5), sales=40:59+rnorm(20,sd=5)) library(ggplot2) ggplot(df) + geom_line(aes(x=quarter,y=sales,group=year))+ # 新增labeller参数设置标签格式 facet_wrap(.~year,strip.position = "top",scales="free", labeller = labeller(year = ~paste0("Year=", .x)))+ theme(strip.placement = "outside", axis.title.x=element_blank(), legend.position="none")
两种方法都能实现需求,方法二更适合需要保留原始数据年份数值类型的场景。
内容的提问来源于stack exchange,提问作者Dovini Jayasinghe
相关产品推荐
相关产品推荐

