168

Matplotlib では、次のように破線のグリッド線を作成します。

fig = pylab.figure()    
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')

ただし、バーなどの他のグラフ要素の背後にグリッド線を描画する方法 (または可能であっても) を見つけることができません。グリッドを追加する順序を変更しても、他の要素を追加しても違いはありません。

グリッド線が他のすべての背後に表示されるようにすることは可能ですか?

4

7 に答える 7

153

これによると - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - 使用できますAxis.set_axisbelow(True)

(私は現在matplotlibを初めてインストールしているので、それが正しいかどうかわかりません-「matplotlib zオーダーグリッド」をグーグルで見つけただけです-「zオーダー」は通常、この種のことを説明するために使用されます(zは軸です) 「ページ外」))

于 2009-11-13T01:13:26.903 に答える
124

私には、アンドリュー・クックの答えを適用する方法が不明だったので、これはそれに基づく完全な解決策です:

ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')
于 2016-08-19T12:51:06.980 に答える
61

すべての図の設定を有効にしたい場合は、

plt.rc('axes', axisbelow=True)

また

plt.rcParams['axes.axisbelow'] = True

Matplotlib>=2.0 で動作します。

于 2017-03-22T12:39:21.733 に答える
8

私は同じ問題を抱えていて、以下がうまくいきました:

[line.set_zorder(3) for line in ax.lines]
fig.show() # to update

3うまくいかない場合は、値を大きくしてください。

于 2013-03-25T10:09:25.303 に答える
0

zorderkwarg を設定することもできますmatplotlib.pyplot.grid

plt.grid(which='major', axis='y', zorder=-1.0)
于 2021-08-25T18:04:15.123 に答える