ggplot2图表X轴离散刻度间缺失去轴线段的原因及解决方法问询
问题原因
该问题由离散X轴的limits参数配置错误导致:你将空字符串直接写入limits列表,ggplot在渲染离散坐标轴时,会将空字符串识别为无有效标签的无效分类,自动截断无有效标签对应的轴段,仅保留存在非空标签的连续区间的轴线。
修复方案
不要通过在limits中插入空字符串实现间隔显示标签的效果,改用breaks和labels参数分别控制需要显示标签的位置和对应文本,limits仅用于指定完整的坐标轴范围,保证轴线全程渲染。修改后完整代码如下:
grafico_4 <- ggplot() + ggtitle("Grafico variado") + theme(plot.title = element_text(size = 10)) + theme(panel.background = element_rect(fill='white', colour='white')) + theme(axis.line = element_line(colour = "black", size = 0.5)) + scale_y_discrete(limits = as.character(1:10)) + scale_x_discrete( limits = as.character(1:10), # 定义完整的10个刻度位置,保证轴范围完整 breaks = as.character(c(1,3,5,7,9)), # 指定需要显示标签的位置 labels = c("uno", "tres", "cinco", "siete", "nueve") # 对应位置的显示标签 ) + geom_hline(yintercept = 5, linetype = "dotted") + ylab("")
修改后离散X轴会先按limits定义的10个位置渲染完整轴线,仅在指定的breaks位置显示对应标签,即可实现间隔显示标签同时轴线完整的效果。
内容的提问来源于stack exchange,提问作者user17029008
相关产品推荐
相关产品推荐

