2017-03-03 1 views
0

描画描画がArtist前に行われているが、第二は、フォアグラウンドで常に表示されますstreamplotArtistStreamplot常に手前に

enter image description here

pcolormeshで行わ同じことが期待されるようになっています

enter image description here

これは両方の画像のコードです:

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

Y, X = np.mgrid[-3:3:100j, -3:3:100j] 
U = -1 - X**2 + Y 
V = 1 + X - Y**2 
speed = np.sqrt(U*U + V*V) 

fig0, ax0 = plt.subplots() 
working = False 
if working: 
    strm = ax0.pcolormesh(X, Y, U, cmap=plt.cm.autumn) 
else: 
    strm = ax0.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn) 
    fig0.colorbar(strm.lines) 

#fig1, (ax1, ax2) = plt.subplots(ncols=2) 
#ax1.streamplot(X, Y, U, V, density=[0.5, 1]) 
# 
#lw = 5*speed/speed.max() 
#ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw) 

e = Rectangle(xy=(0,0), width=1, height=1) 
e.set_facecolor([0.9,0.9,0.9]) 
ax0.add_artist(e) 

plt.show() 

Artiststreamplotをオーバーレイするようにするにはどうすればよいですか?

答えて

2

アーティストのzオーダーを変更することができます。あなたの例では、試してみてください。

e = Rectangle(xy=(0,0), width=1, height=1, zorder=10) 

a matplotlib exampleによると、デフォルトのzオーダーがあると思われる:

  • パッチ/ PatchCollection => 1
  • たLine2D/LineCollection => 2
  • テキスト=> 3

これは、ストリームプロット(線)が長方形の上に描かれる理由を説明しますe(パッチ)。

+0

あまりに単純すぎる:-) streamplotにはzorderパラメータがないので、私はうまくいかないと思っていました。ありがとうございました! –

関連する問題