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

Matplotlib子图柱状图数据标签与柱子间距调整求助

解决Matplotlib柱状图数据标签与柱子间距问题

你当前的柱状图数据标签紧贴柱子顶部,只需调整text()函数的y轴坐标,给柱子顶端的位置加上一个偏移量即可拉开空隙。

修改方案

在循环添加数据标签时,将y坐标从y1[i]改为y1[i] + 偏移值。推荐使用数据最大值的百分比作为偏移(比如2%),这样能根据数据规模自动适配,避免固定偏移在数据差异大时效果不佳。

修改后的完整代码

x = df_graph3['Parameter2'].values
y1 = df_graph3['Vol Flow'].values

z1 = Figure(figsize=(2, 3), tight_layout=True)
plot1 = z1.add_subplot(1, 1, 1)
plot1.bar(x, y1, color='#EB3F3F')
plot1.spines['top'].set_visible(False)
plot1.spines['right'].set_visible(False)
plot1.spines['left'].set_visible(False)
plot1.spines['bottom'].set_visible(False)

# 计算偏移量:取y1最大值的2%作为间距
offset = max(y1) * 0.02
for i in range(len(x)):
    plot1.text(i, y1[i] + offset, y1[i], ha='center', va='bottom', size=8, rotation=90)

plot1.axes.get_yaxis().set_visible(False)
plot1.set_xticklabels(x, fontsize=8)

canvas1 = FigureCanvasTkAgg(z1, master=frame_dash3)
canvas1.draw()
canvas1.get_tk_widget().grid(row=5, column=0, columnspan=2, pady=10, sticky='nsew')

补充说明

  • 如果你的数据范围固定,也可以直接用固定数值作为偏移(比如y1[i] + 0.5),但百分比偏移的适配性更强。
  • 注意代码里的tight_layout=TRUE要改成tight_layout=True,Python里布尔值是小写的True,避免语法错误。

内容的提问来源于stack exchange,提问作者Muhammad Farzan Bashir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:26