在matplotlib图中对两点之间的区域进行着色

时间:2010-09-10 02:08:21

标签: python matplotlib

如何在matplotlib图中的两个点之间添加阴影区域?

在下面的示例matplotlib图中,我使用Skitch手动添加了阴影黄色区域。我想知道怎么做sans-Skitch。

alt text

1 个答案:

答案 0 :(得分:31)

您只需使用axvspan功能即可。这样做的好处是垂直区域(或水平,在axhspan的情况下)将保持阴影,无论您如何平移/缩放绘图。这是一个完整的例子here

请参阅下面的简单示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 500)
y = np.cos(3*x) - 2*np.cos(5*x) + 0.5*np.cos(6*x)

a = 5
b = 15

plt.axvspan(a, b, color='y', alpha=0.5, lw=0)
plt.plot(x, y)
plt.savefig('shade.png', dpi=300)
plt.show()

结果就是这样 enter image description here