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는 "페이지 밖으로 나온" 축입니다).
Andrew Cook의 답변을 어떻게 적용해야 할지 명확하지 않았기 때문에, 이것은 다음과 같은 것을 기반으로 한 완전한 해결책입니다.
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작동하지 않는 경우 더 높은 값으로.
설정할 수도 있습니다.zorder싸움질을 하는.matplotlib.pyplot.grid
plt.grid(which='major', axis='y', zorder=-1.0)
Seaborn의 스타일 중 하나를 사용해볼 수 있습니다.예를 들어:
import seaborn as sns
sns.set_style("whitegrid")
격자선뿐만 아니라 외관도 더 멋질 것입니다.
일부(나와 같은)에게는 다른 요소의 "일부"만 뒤에 그리드를 그리는 것이 흥미로울 수 있습니다.그리기 순서를 세부적으로 제어하기 위해 matplotlib을 사용할 수 있습니다.예술가. 예술가.축에서 set_zorder를 직접 설정합니다.
ax.yaxis.grid(color='gray', linestyle='dashed')
ax.set_zorder(3)
이것은 matplotlib의 노트에 언급되어 있습니다.축.축.그리드.
언급URL : https://stackoverflow.com/questions/1726391/matplotlib-draw-grid-lines-behind-other-graph-elements
'programing' 카테고리의 다른 글
| 파이썬이 함수 정의를 인쇄할 수 있습니까? (0) | 2023.07.19 |
|---|---|
| 밑줄 대 변수 및 방법이 있는 이중 밑줄 (0) | 2023.07.19 |
| 페이지 간 데이터 전달 모범 사례 (0) | 2023.07.19 |
| 배열을 두 번 정렬하지 않고 Python/NumPy를 사용하여 배열의 항목 순위 지정 (0) | 2023.07.19 |
| 마지막 커밋을 실행 취소하는 방법 (0) | 2023.07.19 |