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

Matplotlib如何实现从指定负Y值起点绘制负数值柱状图

Matplotlib 实现指定负起点的负向柱状图配置

代码偏差原因

  • 原有逻辑里plt.bar(f.x, f.y, bottom=-60)的柱定位本身无错误,额外添加的plt.gca().invert_yaxis()会彻底颠倒Y轴数值顺序,变成顶部显示-60、底部显示0,既违背“Y轴底部为-60、顶部为0”的刻度要求,也会让柱的视觉生长方向向下偏移。
  • Matplotlib默认Y轴遵循“下小上大”的数值排布规则,本身就匹配“底部数值更小、顶部数值更大”的刻度要求,完全无需做轴反转操作。

可直接运行的修正代码

import matplotlib.pyplot as plt
import pandas as pd

f = pd.DataFrame({"x": range(9), "y": [-21, -24, -27, -30, -33, -36, -39, -42, -45]})
# 设定柱固定从-60位置开始,柱高为目标值与起点的差值,向上延伸至对应目标数值
plt.bar(f.x, f.y + 60, bottom=-60)
# 锁定Y轴显示范围:底部为-60,顶部为0
plt.ylim(bottom=-60, top=0)
plt.show()

最终效果

  • 所有柱状图从最下方的-60刻度位置开始向上生长,顶端精准停留在每个数据对应的负数值位置。
  • Y轴刻度从下到上依次排布为-60、-40、-20、0,和Excel中“横坐标轴交点设置为-60”的柱状图视觉表现完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 01:15:04