42

一部のデータから計算され、matplotlib で描画されたグラフがあります。このグラフのグローバル最大値の周りに長方形の領域を描画したいと思います。試しplt.axhspan,ましたが、呼び出したときに長方形が表示されないようですplt.show()

では、長方形の領域を matplotlib グラフに描画するにはどうすればよいでしょうか? ありがとう!

4

2 に答える 2

50

最も可能性の高い理由は、axhspan を呼び出すときに x 引数にデータ単位を使用したことです。関数のドキュメントから(私の強調):

y 座標はデータ単位で、x 座標は軸 (相対 0-1) 単位です。

したがって、0 の左または 1 の右に伸びる四角形は、単にプロット外に描画されます。

簡単な代替手段はRectangle、軸に a を追加することです (たとえば、 および を介しplt.gcaadd_patch)。Rectangle両方の次元にデータ単位を使用します。以下は、(2,3) を中心とした幅と高さが 1 の灰色の長方形を追加します。

from matplotlib.patches import Rectangle
import matplotlib.pyplot as plt

fig = plt.figure()
plt.xlim(0, 10)
plt.ylim(0, 12)

someX, someY = 2, 5
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 4, 6, facecolor="grey"))

ここに画像の説明を入力

  • それなしfacecolor
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 4, 6, facecolor="none", ec='k', lw=2))

ここに画像の説明を入力

于 2012-10-22T15:32:12.377 に答える