R语言 在ggplot2中标注面带

lp0sw83n  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(133)

此问题可以是Multi-row x-axis labels in ggplot line chart问题的延续。
我需要知道如何标记这些带。例如,在给出的链接中,每个图的顶部都提到了年份,如2009年、2010年等。如果我需要显示年份=2009年、年份=2010年等,而不是2009年、2010年等,我应该如何更改代码?
样本代码

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))+
  facet_wrap(.~year,strip.position = "top",scales="free")+
  theme(#panel.spacing = unit(0, "lines"),
    strip.placement = "outside",
    axis.title.x=element_blank(),
    legend.position="none")
xxls0lw8

xxls0lw81#

有多种方法可以修改刻面标签。您可以在出图前修改刻面变数:

df$year <- paste0("Year=", df$Year)

ggplot(df) +
  ...

或者您可以在facet_wrap()内修改它:

... +
  facet_wrap(
    .~paste0("Year=", year),
    strip.position = "top",
    scales = "free"
  ) +
  ...

或者您可以指定labeller function。这对于您的情况来说肯定是大材小用,但对于以更复杂的方式转换标签来说可能很有用。

... +
  facet_wrap(
    .~year,
    labeller = as_labeller(\(x) paste0("Year=", x)),
    strip.position = "top",
    scales = "free"
  ) +
  ...

所有这些方法的输出:

相关问题