No Matplotlib, faço linhas de grade tracejadas da seguinte maneira:
fig = pylab.figure()
ax = fig.add_subplot(1,1,1)
ax.yaxis.grid(color='gray', linestyle='dashed')
no entanto, não consigo descobrir como (ou mesmo se é possível) fazer com que as linhas de grade sejam desenhadas atrás de outros elementos do gráfico, como barras. Alterar a ordem de adicionar a grade versus adicionar outros elementos não faz diferença.
É possível fazer com que as linhas de grade apareçam atrás de todo o resto?
python
matplotlib
grid
Andrew
fonte
fonte
ax.set_axisbelow(True)
ainda funciona. Também agradável para saída pdf ...ax.set_axisbelow(True)
para ser o padrão ...Respostas:
De acordo com isso - http://matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html - você pode usar
Axis.set_axisbelow(True)
(No momento, estou instalando o matplotlib pela primeira vez, por isso não faço ideia se isso está correto - eu o encontrei pesquisando "matplotlib z order grid" - "z order" é normalmente usado para descrever esse tipo de coisa (z é o eixo "fora da página"))
fonte
Para mim, não estava claro como aplicar a resposta de andrew cooke, portanto, esta é uma solução completa baseada nisso:
fonte
Se você deseja validar a configuração para todas as figuras, pode definir
ou
Funciona para o Matplotlib> = 2.0.
fonte
Eu tive o mesmo problema e o seguinte funcionou:
Aumente
3
para um valor mais alto se não funcionar.fonte