R Base plot绘制点图时x轴年份出现0.2间隔刻度如何解决
R Base 绘制双年份点图自定义x轴刻度方案
问题核心
使用R Base plot绘制分年份单变量点图时,整数型Year列作为x轴变量会自动生成步长0.2的冗余连续刻度;将Year转为因子类型时,plot默认方法会自动生成箱线图,不符合点图绘制需求,目标是仅保留2022、2023两个x轴刻度,且仅使用Base plot实现,不依赖ggplot等第三方绘图包。
实现方法
不需要修改原数据的列类型,通过屏蔽默认x轴+手动自定义轴刻度的方式即可实现,操作步骤如下:
- 调用
plot()绘图时传入xaxt = "n"参数,关闭默认x轴的自动绘制 - 调用基础函数
axis()单独绘制x轴,仅指定需要展示的2022、2023两个刻度位置和对应标签
可复现代码
# 构造示例数据集 df <- data.frame( value = c(10.7, 2.9, 7.99, 0.41, 11, 0.5), Year = c(2022, 2023, 2022, 2023, 2022, 2023) ) # 绘制散点,关闭默认x轴 plot( value ~ Year, data = df, xaxt = "n", # 关键参数:屏蔽默认x轴 pch = 19, # 点样式,可按需调整 col = "#2c7fb8", # 点颜色,可按需调整 xlim = c(2021.5, 2023.5) # 可选:调整x轴范围,让两个年份的点间距更紧凑 ) # 手动添加仅含目标年份的x轴 axis( side = 1, # 指定在底部(x轴位置)添加轴 at = c(2022, 2023), # 刻度实际对应的数值位置 labels = c(2022, 2023) # 刻度展示的标签 )
补充说明
将Year转为因子后默认出箱线图,是因为R Base的plot泛型函数在检测到x为因子类型时,会自动调度箱线图的绘制方法,因此不需要修改数据类型,直接控制轴绘制是兼容性最好的Base plot实现方案。
内容的提问来源于stack exchange,提问作者Erazijus
相关产品推荐
相关产品推荐

