Programing

matplotlib의 라인 플롯에 수직 격자 선이 나타나도록하기

crosscheck 2020. 10. 10. 09:38
반응형

matplotlib의 라인 플롯에 수직 격자 선이 나타나도록하기


내 플롯에 수평 및 수직 그리드 선을 모두 얻고 싶지만 기본적으로 수평 그리드 선만 나타납니다. 내가 사용하고 pandas.DataFrameX 축에 날짜와 함께 선 그림을 생성하는 파이썬의 SQL 쿼리. 왜 그들이 날짜에 나타나지 않는지 잘 모르겠고 이것에 대한 답을 찾으려고 노력했지만 찾을 수 없었습니다.

그래프를 그리는 데 사용한 것은 아래의 간단한 코드뿐입니다.

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 = None, which = 'major', axis = 'both', ** kwargs)
축 그리드를 켜거나 끕니다.

which 'major'(기본값), 'minor'또는 'both'를 사용하여 주요 눈금 그리드, 보조 눈금 그리드 또는 둘 모두가 영향을 받는지 여부를 제어 할 수 있습니다.

axis 그릴 격자 선 집합을 제어하기 위해 'both'(기본값), 'x'또는 'y'가 될 수 있습니다.

따라서 x 축과 y 축 모두에 대한 격자 선을 표시하기 위해 다음 코드를 사용할 수 있습니다.

ax = plt.gca()
ax.grid(which='major', axis='both', linestyle='--')

이 방법을 사용하면 그리드 선에 대해 표시 할 내용을보다 세밀하게 제어 할 수 있습니다.


아마도 이것은 문제를 해결할 수 있습니다 : matplotlib, 플롯의 그리드 크기 정의

ax.grid(True, which='both')

진실은 그리드가 작동하고 있지만 00:00에는 하나의 v 그리드 만 있고 다른 그리드에는 그리드가 없다는 것입니다. 여러 날 중 11 월 1 일에 그리드가 하나뿐이라는 동일한 문제가 발생합니다.


수평선 만

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines

이것은 효과가 있었다

참고 URL : https://stackoverflow.com/questions/16074392/getting-vertical-gridlines-to-appear-in-line-plot-in-matplotlib

반응형