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

如何用Matplotlib或相关库绘制无坐标轴的学生成绩占比条形图

用Matplotlib实现无Y轴的水平占比条形图

完全可以用Matplotlib实现你想要的这种无冗余Y轴的水平占比条形图,以下是具体实现代码和说明:

示例代码

import matplotlib.pyplot as plt

# 准备数据:成绩类别和对应占比
grade_categories = ["优秀", "良好", "中等", "及格", "不及格"]
percentages = [15, 30, 25, 20, 10]

# 创建画布和轴对象
fig, ax = plt.subplots(figsize=(8, 3))

# 绘制水平条形图
bars = ax.barh(grade_categories, percentages, color="#4a90e2")

# 隐藏Y轴的所有冗余元素
ax.yaxis.set_visible(False)  # 直接隐藏整个Y轴
# 如果需要更精细控制,可以单独隐藏刻度、标签和边框:
# ax.set_yticks([])
# ax.set_yticklabels([])
# ax.spines['left'].set_visible(False)

# 给每个条形添加占比标签
for bar in bars:
    width = bar.get_width()
    ax.text(width + 1, bar.get_y() + bar.get_height()/2,
            f'{width}%', va='center', fontsize=10)

# 设置X轴范围和标签
ax.set_xlim(0, max(percentages) + 10)
ax.set_xlabel('学生占比 (%)')

# 添加标题
ax.set_title('不同成绩段学生占比')

# 调整布局,避免标签被截断
plt.tight_layout()
plt.show()

关键细节说明

  • 隐藏Y轴:通过ax.yaxis.set_visible(False)可以一次性隐藏Y轴的刻度、标签和左侧边框,完全符合你“去掉不必要Y轴”的需求;如果需要保留Y轴的某些元素,可以拆分使用注释里的精细控制代码。
  • 占比标签:通过循环给每个条形添加右侧的百分比文本,让数据更直观。
  • 样式调整:可以通过修改color参数自定义条形颜色,调整figsize控制图表尺寸,让可视化效果更贴合你的需求。

内容的提问来源于stack exchange,提问作者Dan Öz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:20:22