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

如何在matplotlib中条件格式化Y轴刻度,将负百分比显示为“下降x%”

Matplotlib Y轴刻度自定义格式实现方案

你可以通过matplotlib.ticker.FuncFormatter自定义刻度格式化规则来实现需求,具体实现代码如下:

完整实现步骤

  • 第一步:导入依赖模块
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
  • 第二步:自定义刻度格式化函数
    如果你的Y轴原始数值已经是百分比整数(比如-10对应-10%),使用以下逻辑:
def custom_y_formatter(x, pos):
    if x < 0:
        return f"下降{abs(x)}%"
    # 正数场景可按需调整展示规则,示例如下
    elif x > 0:
        return f"上升{x}%"
    else:
        return "0%"

如果你的Y轴原始数值是小数(比如-0.1对应-10%),调整格式化函数逻辑即可:

def custom_y_formatter(x, pos):
    if x < 0:
        return f"下降{abs(x)*100:.0f}%"
    elif x > 0:
        return f"上升{x*100:.0f}%"
    else:
        return "0%"
  • 第三步:将格式化器绑定到Y轴
# 此处省略你自己的绘图逻辑,例如plt.plot(x, y)等
ax = plt.gca()
# 给Y轴主刻度设置自定义格式化器
ax.yaxis.set_major_formatter(FuncFormatter(custom_y_formatter))
# 最后正常展示/保存图表即可
plt.show()

注:可根据实际业务需求调整正数值、0值的展示文案,数值计算规则也可随你的原始数据单位灵活修改。

你当前使用的原图示例:
图表示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:39:02