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

Matplotlib堆叠柱状图使用log对数刻度时部分堆叠层无法正常显示问题

问题产生原因

  • 核心原因:对数刻度下Matplotlib自动适配的y轴显示范围下限过高。你所有柱形的顶端数值都在70以上,Matplotlib默认会将y轴下限设置为接近最小顶端值的位置(通常为1或更高),而always_failing_list_tt和always_passing_list_tt的数值都小于1,对应的堆叠层整体位于y轴显示范围之外,因此被裁剪无法显示。线性刻度下y轴默认从0开始,完全覆盖了小数值区间,所以显示正常。
  • 次要原因:对数刻度的非线性压缩特性。就算你手动把y轴下限调低到0.1覆盖小数值区间,0~0.556范围的高度在对数尺度下占总高度的比例极低,视觉上会非常窄,很容易被误认为没有正常显示。
  • 额外的代码逻辑问题:你当前的堆叠柱形绘制顺序是颠倒的,先绘制了最上层的keep_list_tt,再绘制下层的两个小数值堆叠层。虽然这个问题不会直接导致堆叠层消失,但后续如果有格式调整、标签设置需求,很容易出现遮挡或计算错误,建议调整为从最底层到最上层的绘制顺序:先画always_failing_list_tt,再画always_passing_list_tt,最后画keep_list_tt。

简易修复方案

在ax1.set_yscale("log")之后手动设置y轴下限覆盖小数值区间即可,示例代码:

ax1.set_ylim(bottom=0.1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:18:02