web-dev-qa-db-ja.com

matplotlibプロットの2点間の領域の陰影付け

matplotlib プロットの2点の間に影付きの領域を追加するにはどうすればよいですか?

以下の例 matplotlib プロットでは、 Skitch を使用して、影付きの黄色の領域を手動で追加しました。このsans-Skitchのやり方を知りたいのですが。

alt text

30
Matthew Rankin

関数axvspanを使用するだけです。これの利点は、プロットをパン/ズームする方法に関係なく、垂直領域(またはaxhspanの場合は水平)がシェーディングされたままになることです。完全な例があります ここ

以下の簡単な例を参照してください。

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

31
nicoguaro