如何在ggplot2中添加指定日期X轴刻度且不显示网格线
解决ggplot2自定义日期刻度时多余网格线的问题
你可以通过两种方式处理自定义日期刻度后出现的多余网格线:
方法1:禁用次要刻度与网格线
在scale_x_date中添加minor_breaks = NULL,直接关闭自动生成的次要刻度及对应网格线,只保留你指定的主刻度:
data |> ggplot(aes(x = date, y = n)) + geom_col() + scale_x_date( breaks = as.Date(c("2022-08-01", "2022-08-08", "2022-08-15", "2022-08-17", "2022-08-22", "2022-08-29")), date_labels = "%d %b", minor_breaks = NULL # 关闭次要网格线 )
方法2:直接隐藏X轴网格线
如果不需要任何X轴网格线,通过theme()设置隐藏主、次要网格线:
data |> ggplot(aes(x = date, y = n)) + geom_col() + scale_x_date( breaks = as.Date(c("2022-08-01", "2022-08-08", "2022-08-15", "2022-08-17", "2022-08-22", "2022-08-29")), date_labels = "%d %b" ) + theme( panel.grid.major.x = element_blank(), # 移除X轴主网格线 panel.grid.minor.x = element_blank() # 移除X轴次网格线 )
说明
- 方法1适合需要保留指定刻度对应网格线,但不想看到自动生成的次要网格线的场景;
- 方法2适合完全不需要X轴网格线的场景。
内容的提问来源于stack exchange,提问作者Victor Hartman
相关产品推荐
相关产品推荐

