수직 격자선을 matplotlib의 선 그림에 표시
내 플롯에 수평 및 수직 그리드 선을 모두 표시하고 싶은데 기본적으로 수평 그리드 선만 표시됩니다.사용 중입니다.pandas.DataFrame
python의 SQL 쿼리에서 x축에 날짜가 있는 선 그림을 생성합니다.왜 날짜에 표시되지 않는지 잘 모르겠습니다. 그리고 저는 이것에 대한 답을 찾으려 했지만 찾을 수 없었습니다.
그래프를 그리는 데 사용한 것은 아래의 간단한 코드뿐입니다.
data.plot()
grid('on')
data는 날짜와 SQL 쿼리의 데이터를 포함하는 DataFrame입니다.
아래 코드도 추가해봤지만 세로 격자선이 없는 동일한 출력이 나옵니다.
ax = plt.axes()
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines
좋은 의견이라도 있나?
예를 들어, 호출에 부울 변수를 지정해야 할 수 있습니다.ax.yaxis.grid(True)
대신에ax.yaxis.grid()
또한 두 가지를 모두 사용하므로 다음으로 결합할 수 있습니다.ax.grid
각 차원에 대해 한 번씩 수행하는 것이 아니라 두 가지 모두에서 작동합니다.
ax = plt.gca()
ax.grid(True)
그렇게 하면 당신은 해결될 겁니다.
plt.gca().xaxis.grid(True)
나를 위한 해결책으로 증명되었습니다.
matplotlib 문서에 따르면, 그 서명은Axes
학급grid()
방법은 다음과 같습니다.
Axes.grid(b=Grid, 이는='major', 축='both', **kwargs)
축 그리드를 켜거나 끕니다.
which
주 눈금 그리드, 보조 눈금 그리드 또는 둘 모두의 영향을 받는지 여부를 제어하려면 '주 눈금'(기본값), '주 눈금' 또는 '둘 다'가 될 수 있습니다.
axis
그릴 격자선 세트를 제어하려면 'both'(기본값), 'x' 또는 'y'가 될 수 있습니다.
따라서 x축과 y축 모두에 대한 격자선을 표시하기 위해 다음 코드를 사용할 수 있습니다.
ax = plt.gca()
ax.grid(which='major', axis='both', linestyle='--')
이 방법을 사용하면 그리드 선에 대해 표시할 항목을 보다 세부적으로 제어할 수 있습니다.
간단한 답변(자세한 내용은 아래 참조):
ax.grid(axis='both', which='both')
당신이 하는 일은 올바르고 효과가 있어야 합니다.
그러나 예제의 X축은 날짜 시간 축이므로 주 눈금(아마도)은 X축의 양쪽 끝에만 나타납니다.표시되는 다른 체크 표시는 보조 체크 표시입니다.
그ax.grid()
메서드는 기본적으로 주 눈금에 격자선을 그립니다.따라서 그림에는 아무 것도 표시되지 않습니다.
아래 코드를 사용하여 눈금 표시를 강조 표시합니다.메이저는 파란색이고 마이너는 빨간색입니다.
ax.tick_params(which='both', width=3)
ax.tick_params(which='major', length=20, color='b')
ax.tick_params(which='minor', length=10, color='r')
이제 그리드 선이 보조 눈금에도 나타나도록 하려면 다음을 통과합니다.which='minor'
방법:
ax.grid(b=True, which='minor', axis='x', color='#000000', linestyle='--')
또는 단순히 사용합니다.which='both'
주 그리드 선과 보조 그리드 선을 모두 그립니다.그리고 이것은 좀 더 우아한 격자선입니다.
ax.grid(b=True, which='minor', axis='both', color='#888888', linestyle='--')
ax.grid(b=True, which='major', axis='both', color='#000000', linestyle='-')
아마도 이것은 문제를 해결할 수 있습니다: matplotlib, 플롯에서 그리드의 크기를 정의합니다.
ax.grid(True, which='both')
사실은 그리드가 작동하고 있지만 00:00에는 v-grid가 하나만 있고 다른 것에는 그리드가 없습니다.저는 11월 1일에 여러 날 중에 그리드가 하나밖에 없다는 것과 같은 문제에 직면합니다.
수평 라인에만 해당
ax = plt.axes()
ax.yaxis.grid() # horizontal lines
효과가 있었습니다.
시도:
plt.grid(True)
오른쪽에 주 눈금이 있는 날짜 시리즈의 수평 및 수직 그리드가 모두 켜집니다.
Python3 / MatPlotLib 3.4.3 사용
언급URL : https://stackoverflow.com/questions/16074392/getting-vertical-gridlines-to-appear-in-line-plot-in-matplotlib
'programing' 카테고리의 다른 글
리스트에서 특이치를 기각하기 위한 numpy가 내장되어 있습니까? (0) | 2023.07.29 |
---|---|
Android에서 이미지 보기의 투명 배경 설정 (0) | 2023.07.29 |
jQuery 액세스 입력 숨김 값 (0) | 2023.07.29 |
파이썬에서 긴 다중 줄 문자열을 한 줄씩 읽는 방법 (0) | 2023.07.29 |
커밋된 트랜잭션 롤백 (0) | 2023.07.29 |