matplotlib 图的自定义背景部分

mar*_*xin 2 matplotlib

我想定义应用于 y 值的颜色部分(蓝色:[0-15000]、绿色:[15000-23000]、红色[23000,])。在 matplotlib 中是否有可能?

图形

ASG*_*SGM 5

您可以使用collections.BrokenBarHCollection为 matplotlib 图上的区域着色:

import matplotlib.pyplot as plt
import matplotlib.collections as collections

fig = plt.figure()
ax = fig.add_subplot(111)

# Plot your own data here
x = range(0, 30000)
y = range(0, 30000)
ax.plot(x, y)

xrange = [(0, 30000)]
yrange1 = (0, 15000)
yrange2 = (15000, 23000)
yrange3 = (23000, 30000)

c1 = collections.BrokenBarHCollection(xrange, yrange1, facecolor='blue', alpha=0.5)
c2 = collections.BrokenBarHCollection(xrange, yrange2, facecolor='green', alpha=0.5)
c3 = collections.BrokenBarHCollection(xrange, yrange3, facecolor='red', alpha=0.5)

ax.add_collection(c1)
ax.add_collection(c2)
ax.add_collection(c3)

plt.show()
Run Code Online (Sandbox Code Playgroud)