在Matplotlib繪製網格線,我做虛網格線如下:Matplotlib:落後於其他圖形元素
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
然而
,我無法找出如何(或者即使是可能的),使網格線會繪製在其他圖形元素(如條形圖)的後面。改變添加網格的順序與添加其他元素的順序沒有區別。
是否有可能使網格線出現在所有其他東西后面?
在Matplotlib繪製網格線,我做虛網格線如下:Matplotlib:落後於其他圖形元素
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
然而
,我無法找出如何(或者即使是可能的),使網格線會繪製在其他圖形元素(如條形圖)的後面。改變添加網格的順序與添加其他元素的順序沒有區別。
是否有可能使網格線出現在所有其他東西后面?
根據這一點 - http://old.nabble.com/axis-elements-and-zorder-td6119088.html - 您可以使用Axis.set_axisbelow(True)
(我目前正在安裝的第一次matplotlib,所以不知道如果這是正確的 - 我只是覺得通過谷歌搜索「matplotlib Z順序網格」 - 「Z順序」通常用來形容這種事情(z是軸「出頁面」))
我有同樣的問題,下面的工作:
[line.set_zorder(3) for line in ax.lines]
fig.show() # to update
增加3
到一個 更高的價值,如果它不起作用。
這是因爲'grid'有一個'zorder = 2.5'。 – farenorth 2015-07-03 21:21:08
對我來說,目前還不清楚如何辦理安德魯·庫克的回答,所以這是基於一個完整的解決方案:
ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')
如果你想驗證設置爲所有數字,您可以設置
plt.rc('axes', axisbelow=True)
或
plt.rcParams['axes.axisbelow'] = True
它的工作原理對於Matplotlib> = 2.0。
'ax.set_axisbelow(True)'仍然有效。對於pdf輸出也很好... – BandGap 2013-01-22 19:54:59