본문 바로가기
파이썬

파이썬 matplotlib에서 datetimes로 x 축 범위를 어떻게 변경합니까?

by º기록 2020. 12. 24.
반응형

x 축에 날짜 그래프를 그리고 y 축에 값을 그리려고합니다. x 축의 범위를 적절하게 얻을 수 없다는 점을 제외하면 잘 작동합니다. x 축 범위는 내 날짜가 오늘 임에도 불구하고 항상 2012 년 1 월부터 2016 년 1 월까지입니다. xlim이 첫 번째이자 마지막 날짜 여야한다고 지정하고 있습니다.

관련이 있다면 python-django를 위해 이것을 작성하고 있습니다.

 import datetime
 import matplotlib.pyplot as plt

 x = [datetime.date(2014, 1, 29), datetime.date(2014, 1, 29), datetime.date(2014, 1, 29)] 
 y = [2, 4, 1]

 fig, ax = plt.subplots()
 ax.plot_date(x, y)
 ax.set_xlim([x[0], x[-1]])

 canvas = FigureCanvas(plt.figure(1))
 response = HttpResponse(content_type='image/png')
 canvas.print_png(response)
 return response

다음은 출력입니다. 여기에 이미지 설명 입력

 

해결 방법

 

OP에서 실제 데이터를 확인하면 모든 값이 동일한 날짜 / 시간에 있습니다. 따라서 matplotlib는 x 축을 자동으로 축소합니다. datetime 객체를 사용하여 x 축 제한을 수동으로 설정할 수 있습니다.

matplotlib v1.3.1에서 다음과 같이하면 :

import datetime
import matplotlib.pyplot as plt

x = [datetime.date(2014, 1, 29)] * 3 
y = [2, 4, 1]

fig, ax = plt.subplots()
ax.plot_date(x, y, markerfacecolor='CornflowerBlue', markeredgecolor='white')
fig.autofmt_xdate()
ax.set_xlim([datetime.date(2014, 1, 26), datetime.date(2014, 2, 1)])
ax.set_ylim([0, 5])

나는 얻다:

여기에 이미지 설명 입력

축 제한은 내가 지정한 날짜와 일치합니다.

 

참조 페이지 https://stackoverflow.com/questions/21423158

 

 

반응형

댓글