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

matplotlib绘制柱状图时Google Colab环境坐标轴线条与柱体重叠问题求解

问题原因

Google Colab 环境下 Matplotlib 的默认样式配置与 Jupyter Notebook 不一致,轴脊、网格的默认渲染优先级高于柱状图,叠加plt.ylim的错误传参触发的版本兼容问题,最终导致轴标签线条与柱状图重叠。

修复方案

可任选以下一种或组合使用解决问题:

  • 调整柱状图渲染优先级
    为plt.bar方法添加zorder=2参数,确保柱状图层级高于轴元素和网格,修改后代码如下:
    barplot = plt.bar(labels,values,width=0.3,color = c, zorder=2)
    
  • 修正坐标轴参数写法
    plt.ylim仅支持传入上下限两个参数,第三个刻度间隔参数不会生效,Colab 环境对错误传参的兼容处理较差会额外触发显示异常,正确的刻度间隔设置需要单独调用plt.yticks:
    plt.ylim(50000, 100000)
    plt.yticks(range(50000, 105000, 5000))
    
  • 全局配置渲染层级
    在绘图代码开头添加全局配置,强制所有轴元素、网格渲染在图形下方:
    import matplotlib.pyplot as plt
    plt.rcParams['axes.axisbelow'] = True
    

完整可运行代码

import matplotlib.pyplot as plt

labels = ['A','B','C']
values = [70000,80000,90000]
c = ['#FFC000','#5B9BD5','#404040','#5B9BD5']

# 指定zorder确保柱状图在最上层
barplot = plt.bar(labels,values,width=0.3,color = c, zorder=2)
 
# 柱子顶部标注数值
for i in range(len(values)):
    plt.annotate(str(values[i]), xy=(labels[i],values[i]), ha='center', va='bottom')

plt.ylabel('Savings') 
# 修正坐标轴配置
plt.ylim(50000,100000)
plt.yticks(range(50000, 105000, 5000))
# 网格层级设为最低
plt.grid(which='major', axis='y', zorder=0)

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:12:04