ノート
完全なサンプルコードをダウンロードするには、ここをクリックしてください
ゾーダーデモ#
アーティストの描画順序zorder
は、浮動小数点数である属性によって決定されます。より高いアーティストzorder
が上に描画されます。.を設定することで、個々のアーティストの順序を変更できますzorder
。デフォルト値は、アーティストのタイプによって異なります。
アーティスト |
Zオーダー |
---|---|
画像 ( |
0 |
1 |
|
|
2 |
主目盛り |
2.01 |
|
3 |
5 |
プロット メソッドを呼び出すと、その特定のアイテムの zorder の値を明示的に設定できます。
ノート
set_axisbelow
とrcParams["axes.axisbelow"]
(デフォルト: 'line'
) は、目盛りとグリッド線の zorder を設定するための便利なヘルパーです。
描画は一度に行われAxes
ます。重複する Axes がある場合、2 番目の Axes のすべての要素は、相対的な zorder に関係なく、最初の Axes の上に描画されます。
次の例には、によって作成された と、Line2D
によって作成されplot()
たドット (a PatchCollection
) が含まれていscatter()
ます。したがって、デフォルトでは、ドットは線の下にあります (最初のサブプロット)。2 番目のサブプロットではzorder
、ドットを線の上に移動するように明示的に設定されています。
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(6, 3.2))
ax1.plot(x, y, 'C3', lw=3)
ax1.scatter(x, y, s=120)
ax1.set_title('Lines on top of dots')
ax2.plot(x, y, 'C3', lw=3)
ax2.scatter(x, y, s=120, zorder=2.5) # move dots on top of line
ax2.set_title('Dots on top of lines')
plt.tight_layout()
可視オブジェクトを作成する関数の多くは、パラメーターを受け入れzorder
ます。set_zorder()
または、作成したオブジェクトを後で呼び出すこともできます。
x = np.linspace(0, 7.5, 100)
plt.rcParams['lines.linewidth'] = 5
plt.figure()
plt.plot(x, np.sin(x), label='zorder=2', zorder=2) # bottom
plt.plot(x, np.sin(x+0.5), label='zorder=3', zorder=3)
plt.axhline(0, label='zorder=2.5', color='lightgrey', zorder=2.5)
plt.title('Custom order of elements')
l = plt.legend(loc='upper right')
l.set_zorder(2.5) # legend between blue and orange line
plt.show()