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

如何在Matplotlib中为X轴的不同分段设置不同颜色?

实现Matplotlib X轴分段颜色(含对应刻度)

要解决X轴0-0.9段为蓝色、0.9-3段为红色(包含轴本身及对应刻度)的需求,无需用额外plot线的方式,直接通过修改坐标轴和刻度属性实现,完整代码如下:

import matplotlib.pyplot as plt

x = [0.9, 1, 1.1, 1.2, 1.3]
y = [0, 0.1, 0.3, 0.6, 1]

fig, ax = plt.subplots()

# 绘制原始折线
ax.plot(x, y)

# 隐藏默认的底部X轴,避免和自定义分段轴重叠
ax.spines['bottom'].set_visible(False)

# 绘制分段颜色的X轴:xmin/xmax为轴范围的比例值(X轴总范围0-3)
# 0-0.9区间:蓝色
ax.axhline(y=0, xmin=0, xmax=0.9/3, color='blue', linewidth=2)
# 0.9-3区间:红色
ax.axhline(y=0, xmin=0.9/3, xmax=1, color='red', linewidth=2)

# 设置X轴刻度
ax.set_xticks([0, 0.5, 0.9, 1.5, 2, 2.5, 3])
ax.set_xlim(0, 3)
ax.set_ylim(0, max(y))

# 根据刻度值设置对应颜色
for tick_label in ax.get_xticklabels():
    tick_val = float(tick_label.get_text())
    tick_label.set_color('blue' if tick_val <= 0.9 else 'red')

plt.margins(x=0, y=0)
plt.show()

关键说明

  • 用ax.axhline绘制分段轴:xmin和xmax是相对于X轴总范围的比例,这里X轴范围是0-3,所以0.9对应的比例是0.9/3
  • 隐藏默认底部坐标轴(spine),避免重复显示
  • 遍历所有X轴刻度标签,根据刻度值所在区间设置对应颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:47:11