2016-10-04 20 views
2

私は同じ図の中に1つの散布図と1つの線図を持っています。私はそれがラインプロットは、現在、散布図を曖昧さプロットはmatplotlibの他のプロットを隠しています

fig, ax = plt.subplots() 
scat = plt.scatter([0], [0], color = 'r') 
line, = ax.plot(pos_data.x, pos_data.y, color = "k") 

使用して作成しますが、私は周りにそれを他の方法をしたいと思います(つまり、それが最初にレンダリングされているラインプロット、および上部の散布図のようになります。その1つの)。

これは可能ですか?

+2

散布図とラインプロットの順序を逆にするとどうなりますか? – briansrls

+0

@briansrls成功なしで試してみる:/ – pingul

答えて

2

は、軸のデフォルトの描画順序は、パッチ、ライン、テキストであるZオーダー

plt.plot(x, y, 'r', zorder=1, lw=3) 
plt.scatter(x, y, s=120, zorder=2) 

を変更してみてください。この順序は、zorder属性によって決まります。次のデフォルト はあなたがZORDERを設定することで、個々のアーティストのための順序を変更することができ

 Artist      Z-order    
     Patch/PatchCollection  1 
     Line2D/LineCollection  2 
     Text       3 

に設定されています。 個々のplot()呼び出しでは、特定の項目の のzorderの値を設定できます。

+0

それは魅力のように動作します!旧式になる可能性があるので、リンク(つまり、 'plt.scatter(...、zorder = 10)')の代わりに必要なコードで回答を修正してください。 – pingul

+0

@pingulそれは良い点だ、私はやった – briansrls

1

重複した質問here。あなたは、各グラフのzorderを設定する必要が

、より大きな値が上に滞在:

import matplotlib.pyplot as plt 

class Data: 
    pass 

pos_data = Data() 
pos_data.x = [1,2,3,4,5] 
pos_data.y = [7,2,5,3,4] 

fig = plt.figure() 
ax = fig.add_subplot(111) 
scat = ax.scatter(pos_data.x, pos_data.y, color = 'r', zorder=2) 
line = ax.plot(pos_data.x, pos_data.y, color = "k", zorder=1) 

ます。また、(多くのためmatplotlib.plot docを参照してくださいあなたのプロット上のマーカーとその色を設定することで、同じことを達成することができますオプション):

... 
line_with_markers = ax.plot(pos_data.x, pos_data.y, color = "k", 
          marker='o', markerfacecolor='red') 
関連する問題