You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言ggplot2绘制柱状图如何实现x轴标签与柱形对齐

柱状图柱体与X轴标签错位修复方案

错位诱因

错位由两处配置问题共同导致:

  1. 单系列柱状图误用分组柱图专用的位置调整参数position_dodge2():该参数的作用是给同X轴位置的多组柱体分配并排位置,单柱场景下会主动给柱体添加横向偏移,直接导致柱体脱离X轴刻度中心。
  2. X轴文本主题配置重复冲突:代码先后两次设置axis.text.x属性,第一次设置的hjust=1(右对齐)没有被后续配置完全覆盖,导致X轴标签相对刻度偏移。

修正后完整代码

library(ggplot2)
library(wesanderson)

# 匹配示例数据结构
df <- data.frame(
  libnatmut = c("Vente", "Vente en l'état futur d'achèvement"),
  counts = c(679, 137)
)

g1 <- ggplot(data=df, aes(x = libnatmut, y = counts, fill=libnatmut)) +
  geom_bar(stat = "identity", width = 0.3) +
  labs(title = "Nature des mutations", x="Type de la vente", y="Nombre de ventes") +
  geom_text(aes(label = counts), vjust = -0.3) +
  theme(
    axis.text.x = element_text(face="bold", color="#993333", size=14, angle=0, hjust = 0.5),
    axis.text.y = element_text(face="bold", color="#993333", size=14),
    axis.title = element_text(size=22),
    plot.title = element_text(size=24),
    axis.line = element_line(colour = "#993333", size = 1, linetype = "solid")
  ) +
  scale_fill_manual(values = rep_len(wes_palette("Zissou1"), 10)) +
  theme(legend.position = "none")

ggsave(g1, filename = "libnatmut.png", dpi = 300, height = 30, width = 30, units = "cm")

关键调整说明

  • 移除geom_bar中多余的position=position_dodge2(preserve='single')配置,单系列柱图默认使用position_identity()即可让柱体落在X轴刻度正中心。
  • 合并重复的X轴文本主题配置,显式设置hjust=0.5,强制X轴标签以刻度线为中心水平对齐,避免旧配置的对齐参数残留。
  • 清理冗余配置:删除第一次设置的angle=17,hjust=1的无效X轴文本配置,删除Y轴文本无意义的angle=360参数(等价于angle=0,为默认值)。
  • 调整后柱体、柱顶数值标签、X轴分类标签三者完全居中对齐,无偏移问题。

内容的提问来源于stack exchange,提问作者mmcr_economics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:09:13