ggplot 中未显示 x 轴标签

x-axis labels not showing in ggplot

我的 ggplot 中没有显示 x 轴标签,我无法弄清楚问题出在哪里。我尝试将 scale_x_continuous 更改为 scale_x_discrete 但这不是问题所在。这是数据和代码:

dput(df)
structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "X..i..", class = "factor"), 
    value = c(0.86535786015671, 0.270518550067837, 0.942648772841964, 
    3.99444934081099, 1.11759146288817, 1.54510976425154, 2.44547105239855, 
    2.2564822479637, 0.806268193902794, 0.334684787222841, 0.279275582280181, 
    0.506202944652795, 0.00974858004556866, 0.274742461635902, 
    0.22071873199716, 0.289511637643534, 0.352185038116792, 0.834072418861261, 
    1.34338149120735, 1.74931508000265, 1.49348843361896, 4.07991249877895, 
    1.37225152308336, 0.812438174787708, 0.870119514197706, 1.12552827647611, 
    0.981401242191818, 0.811544940639505, 0.270314252804909, 
    0.00129424269740973, 0.138397649461267, 0.320412520877311, 
    0.200638317328505, 0.311317976283425, 2.27515845904203, 0.701130150695764, 
    1.19347381779438, 1.74260582346705, 2.04812451743241, 3.30525861365071, 
    1.09525257544341, 2.6941909849432, 1.24879308689346, 2.32559594481724, 
    0.489685734592222, 0.401412018111572, 0.209957274618462, 
    0.715330877881211, 0.844512982038313, 0.220417574806829, 
    0.440151738500053, 1.32486291268667, 0.771676730656983, 1.295145890213, 
    2.410181199299, 2.41520949303317, 2.07420663366187, 1.45105393420989, 
    1.94026424903487, 1.06019651909079, 1.21389399141063, 0.526835419170636, 
    0.392643071856425, 0.07366669912048, 0.376156996326127, 0.461881411637594, 
    0.236855843259622, 0.367884917633423), year = c(2005L, 2006L, 
    2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 
    2016L, 2017L, 2018L, 2019L, 2020L, 2021L, 2005L, 2006L, 2007L, 
    2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 2016L, 
    2017L, 2018L, 2019L, 2020L, 2021L, 2005L, 2006L, 2007L, 2008L, 
    2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 2016L, 2017L, 
    2018L, 2019L, 2020L, 2021L, 2005L, 2006L, 2007L, 2008L, 2009L, 
    2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 2016L, 2017L, 2018L, 
    2019L, 2020L, 2021L), tenor = structure(c(1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L), .Label = c("1", "5", "10", "average"), class = "factor")), row.names = c(NA, 
-68L), class = "data.frame")
ggplot(df, aes(year, value, color = tenor)) + 
    geom_line(size=0.5) + scale_x_continuous(breaks = seq(1:17),labels = seq(2005,2021)) +
    geom_point() +
    xlab("year")

如果你想强制 ggplot 绘制每个 x 轴标签,你可以使用 scale_x_continous(breaks = 2005:2021)breaks = df$year

ggplot(df, aes(year, value, color = tenor)) + 
  geom_line(size=0.5) +
  scale_x_continuous(breaks = df$year) +
  geom_point() +
  xlab("year")