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

R ggplot2 geom_bar柱状图调整X轴文本、移除冗余图例方法

故障原因
  • X轴标签旋转不生效:代码中ggtitle()行末尾缺失+图层连接符,后续的theme()配置没有被挂载到ggplot对象上,所有主题自定义设置均未执行。
  • 冗余图例无法删除:一方面theme层未加载导致相关配置失效,另一方面你写的legend.key = NULL本身就不是移除图例的有效参数;另外单系列柱状图将fill映射为和X轴完全一致的分类变量,本身就会生成和X轴标签重复的无效图例。
  • 冗余代码:全局环境中给Spécialité和Nombre de praticiens en 2021单独赋值的两行代码没有实际作用,ggplot会直接调用传入数据框的列,不需要提前单独赋值。
修正代码

提供两种可选实现:

  1. 不需要按专科区分填充色时,直接取消fill的美学映射,从根源避免冗余图例生成
library(ggplot2)
library(dplyr)

ggplot(Evol_praticiens_spé_amb, aes(x = Spécialité, y = `Nombre de praticiens en 2021`)) + 
  geom_bar(stat = "identity", fill = "#2c7fb8", width = 0.7) +
  ggtitle("Repartition des praticiens en ambulatoire en 2021") +
  theme(
    plot.title = element_text(hjust = 0.5, vjust = 1, size = 10),
    # 90度旋转标签时hjust设为1,让文字顶端对齐刻度,避免错位
    axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 5),
    axis.text.y = element_text(size = 5)
  )
  1. 需要保留不同专科的填充色区分时,保留fill映射,通过参数直接隐藏对应图例
library(ggplot2)
library(dplyr)

ggplot(Evol_praticiens_spé_amb, aes(x = Spécialité, y = `Nombre de praticiens en 2021`,
                                     fill = as.factor(Spécialité))) + 
  geom_bar(stat = "identity", width = 0.7) +
  ggtitle("Repartition des praticiens en ambulatoire en 2021") +
  # 隐藏fill映射生成的图例
  guides(fill = "none") +
  theme(
    plot.title = element_text(hjust = 0.5, vjust = 1, size = 10),
    axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 5),
    axis.text.y = element_text(size = 5)
  )

注:如果觉得90度垂直标签阅读体验差,可以把angle参数改为45,配合hjust=1实现斜排标签,可读性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:57:32