[python] Matplotlib : 다른 그래프 요소 뒤에 격자 선 그리기

Matplotlib에서 다음과 같이 점선 격자 선을 만듭니다.

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

그러나 그리드 선을 막대와 같은 다른 그래프 요소 뒤에 그리는 방법 (또는 가능하더라도)을 찾을 수 없습니다. 그리드를 추가하는 것과 다른 요소를 추가하는 순서를 변경해도 차이가 없습니다.

그리드 선이 다른 모든 것 뒤에 나타나도록 만들 수 있습니까?



답변

이것에 따르면 -http : //matplotlib.1069221.n5.nabble.com/axis-elements-and-zorder-td5346.html- 사용할 수 있습니다Axis.set_axisbelow(True)

(저는 현재 처음으로 matplotlib를 설치하고 있으므로 그것이 맞는지 모르겠습니다. “matplotlib z order grid”를 검색하여 찾았습니다.- “z order”는 일반적으로 이런 종류의 것을 설명하는 데 사용됩니다 (z는 축입니다. “페이지 외부”))


답변

나에게 앤드류 쿡의 답변을 적용하는 방법이 명확하지 않았으므로 다음을 기반으로 한 완전한 솔루션입니다.

ax.set_axisbelow(True)
ax.yaxis.grid(color='gray', linestyle='dashed')


답변

모든 그림에 대한 설정을 확인하려면 다음을 설정할 수 있습니다.

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

또는

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

Matplotlib> = 2.0에서 작동합니다.


답변

나는 같은 문제가 있었고 다음이 작동했습니다.

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

3작동하지 않으면 더 높은 값으로 늘리십시오 .


답변