2012-12-17 8 views
-1
다음과 같이

내 데이터가 보이는 : 첫 번째 열은 데이터 YYYYMMDDHH입니다파이썬하기 matplotlib 플로팅 CSV 데이터,

2012021305, 65217 
2012021306, 82418 
2012021307, 71316 
2012021308, 66833 
2012021309, 69406 
2012021310, 76422 
2012021311, 94188 
2012021312, 111817 
2012021313, 127002 
2012021314, 141099 
2012021315, 147830 
2012021316, 136330 
2012021317, 122252 
2012021318, 118619 
2012021319, 115763 
2012021320, 121393 
2012021321, 130022 
2012021322, 137658 
2012021323, 139363 

합니다. csv2rec 모듈을 사용하여 데이터를 그래프로 표시하려고합니다. 그래프로 데이터를 가져올 수 있지만 x 축과 레이블이 예상대로 표시되지 않습니다.

import matplotlib 
matplotlib.use('Agg') 
from matplotlib.mlab import csv2rec 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
from pylab import * 


output_image_name='plot1.png' 
input_filename="data.log" 

input = open(input_filename, 'r') 

input.close() 

data = csv2rec(input_filename, names=['time', 'count']) 
rcParams['figure.figsize'] = 10, 5 
rcParams['font.size'] = 8 

fig = plt.figure() 

plt.plot(data['time'], data['count']) 

ax = fig.add_subplot(111) 
ax.plot(data['time'], data['count']) 
hours = mdates.HourLocator() 
fmt = mdates.DateFormatter('%Y%M%D%H') 
ax.xaxis.set_major_locator(hours) 
ax.xaxis.set_major_formatter(fmt) 

ax.grid() 

plt.ylabel("Count") 
plt.title("Count Log Per Hour") 

fig.autofmt_xdate(bottom=0.2, rotation=90, ha='left') 

plt.savefig(output_image_name) 

나는 이것이 날짜 형식과 관련이 있다고 가정합니다. 어떤 제안?

+3

무엇을 원하셨습니까? –

+0

X 레이블을 데이터/시간으로 추가하고 적절한 틱을 추가하고 싶습니다. 지금은 X 레이블이 전혀 없습니다. – secumind

답변

2

당신은 datetime 개체에 같은

뭔가의 x 값을 변환해야합니다 : 현재

time_vec = [datetime.strp(str(x),'%Y%m%d%H') for x in data['time']] 
plot(time_vec,data['count']) 

을, 당신은 모르는 날짜, 같은 형식의 정수 (2012021305)에 파이썬을 말하고있다 어떻게하는지, 그래서 그것은 반환하고 빈 문자열 (비록, 나는 당신이 어딘가에서 제기 오류가 발생하는 용의자).

format string 마크 업을 확인해야합니다.

+0

감사합니다. 시도해 보겠습니다. – secumind

관련 문제