私は例ドキュメントにはmatplotlib
記載されていましたが、特定の 2 本の垂直線の間の領域を塗りつぶすプロットを作成する方法がわかりませんでした。
たとえば、x=0.2
との間(プロットのx=4
全範囲)のプロットを作成したいとします。 、 、 のどれを使用すればよいのでしょうか。y
fill_between
fill
fill_betweenx
この条件を使用できますかwhere
?
ベストアンサー1
あなたが望んでいるのはaxvspan
関数間のフィルの1つではなく、関数間のフィルの1つです。違いは、axvspan
(およびaxhspan
) は、ズーム方法に関係なく、プロットの y (または x) 範囲全体を埋めます。
たとえば、axvspan
8 と 14 の間の x 領域を強調表示するには、次のようにします。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, alpha=0.5, color='red')
plt.show()
これを行うにはを使うこともできますfill_betweenx
が、長方形の範囲(xとyの両方)はデータ座標の場合axvspan
、長方形のy範囲はデフォルトで0と1になり、軸座標(言い換えれば、プロットの高さのパーセンテージです)。
これを説明するために、長方形を高さの 10% から 90% まで拡張してみましょう (全範囲を占めるのではなく)。ズームまたはパンを試して、y 範囲が表示スペースで固定されているのに対し、x 範囲はズーム/パンに合わせて移動していることに注意してください。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color='red')
plt.show()