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


124

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

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

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

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


10
ax.set_axisbelow(True)여전히 작동합니다. PDF 출력에도 좋습니다 ...
BandGap

5
나는 ax.set_axisbelow(True)기본값 이 될 것으로 예상했을 것입니다 ...
PatrickT

답변:


122

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

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


상단에 레이블을 유지하면서 막대 / 선 아래에 격자 선을 가질 수 있습니까? 나는 또한이 후 질문 별도로 게시 stackoverflow.com/questions/29522447/...
joelostblom

matplotlib.1069221.n5.nabble.com/… , 고대 스레드 일 수 있습니다 .
Jacques Kvam

86

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

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

34

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

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

또는

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

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


8

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.