2016-06-17 6 views
1

시간에 따른 전기 사용량을 플로팅하려고합니다. 플롯에서matplotlib 플롯에 X 축 레이블을 올바르게 표시합니다.

from datetime import datetime 
import matplotlib.pyplot as plt 
import numpy as np 

timelist = [] 
valuelist = [] 

# Logic that populates timelist and valuelist 

timeaxis = np.array(timelist) 
valueaxis = np.array(valuelist) 

plt.plot(timeaxis, valueaxis, 'r-') 
plt.savefig('elec_use.png', bbox_inches='tight') 
plt.show() 

X 축 레이블을 나는 위의 모든 그래프의 길이에 벼락치기하는 프로그램을 실행 얻을 :이 스크립트를 사용하고 있습니다. x-axis labels crammed

그래서 같은 xticks을 추가하여 레이블을 회전 시도 :

plt.xticks(timeaxis, rotation=90) 

이 레이블이 손질 얻을됩니다. x-axis labels cut off

어떻게 문제를 해결할 수 있습니까? 나는 plt.gcf().subplots_adjust(bottom=0.25)을 추가하려고 시도했으나 이것은 레이블을 수정하지 않고 단지 그래프의 아래쪽으로 부동산을 증가시킵니다. x 축 레이블을 Jun 02 2016 또는 단순히 Jun 02이라고 말하고 싶습니다. 나는 그래프가 넓어지는 것을 꺼리지 않는다. 모든 도움을 미리 감사드립니다.

답변

1

gcf().autofmt_xdate을 사용하면 x 축의 형식을 멋지게 지정할 수 있습니다. 날짜 문자열 형식의 경우 matplotlib.dates.DateFormatter을 사용할 수 있습니다.

fig, ax = plt.subplots(1) 

timelist = [] 
valuelist = [] 

# Logic that populates timelist and valuelist 

timeaxis = np.array(timelist) 
valueaxis = np.array(valuelist) 
ax.plot(timeaxis, valueaxis, 'r-') 

# rotate and align the tick labels so they look better 
fig.autofmt_xdate() 

# use a more precise date string for the x axis locations in the 
# toolbar 
import matplotlib.dates as mdates 
ax.fmt_xdata = mdates.DateFormatter('%Y-%m-%d') 
plt.savefig('elec_use.png', bbox_inches='tight') 
plt.show() 
:

enter image description here


그래서 당신이 코드는 다음과 같이 될 것입니다 : 다음과 같은 것

관련 문제