2011-04-09 3 views
2

matplotlibを使用している場合、Rectangle、LineCollectionsなどの他のオブジェクトの下にテキストを設定するにはどうすればよいですか?あるいはもっと一般的には、matplotlibは、オブジェクトが互いに重なるときにオブジェクトがどのように表示されるかを決めるのですか?グリッドとは異なり、Axes.set_textbelow()のような関数はありません。私はこの主題を探査しましたが、満足できる結果は得られませんでした。Matplotlib - 他のオブジェクトが重なっているときにテキストを設定する方法は?

以下はmatplotlibで描画した株価チャートです。音量セクションに注意してください。ノート(白いテキスト)を重なり合う音量バーの下に設定したいと思います。ノートはAxes.text()で描画されたTextオブジェクトで、ボリュームバーはAxes.vlines()で描画されたLineCollectionオブジェクトです。

stock chart I draw with matplotlib

答えて

3

おそらく、ZORDERを探しています:

from pylab import * 

fig = figure(1) 
fig.clf() 
ax = subplot(111) 
rect = matplotlib.patches.Rectangle((0.2,0.2), 0.3, 0.3, fc = '0.5', ec = '0.0') 
ax.add_patch(rect) 
ax.text(.4, .4, "Help me, there is a rectangle stuck under me!") 

fig = figure(2) 
fig.clf() 
ax = subplot(111) 
rect = matplotlib.patches.Rectangle((0.2,0.2), 0.3, 0.3, fc = '0.5', ec = '0.0') 
ax.add_patch(rect) 
ax.text(.4, .4, "Help me, I'm stuck under a rectangle!", zorder = -1) 

show() 
+0

それは簡単なだけでなく、明らかです。私はそれを試して、結果は私が期待していたほど良く見える、感謝@ダーン! –

関連する問題