簡體   English   中英

沿x軸繪制日期時間

[英]plotting datetime along the x-Axis

嗨,我正在嘗試在x軸上繪制日期時間數組。 但是我似乎在實際繪制它們時遇到了問題,並不斷出現值錯誤:

ValueError: invalid literal for long() with base 10: '2013-02-18 00:00:00'

有誰知道我要去哪里錯了?

數據本身格式化為四列,並且在打印時如下所示:('04 / 03/2013',7.0,12.0,17.0)('11 / 03/2013',23.0,15.0,23.0)。

import csv
import numpy as np
import pylab as pl
import datetime
from datetime import datetime
data = np.genfromtxt('H:/AppliedGIS/Python/AssignmentData/GrowthDistribution/full.csv', names=True, usecols=(0, 1, 2, 3), delimiter= ',', skiprows=1, dtype =[('Date', 'S10'),('HIGH', '<f8'), ('Medium', '<f8'), ('Low', '<f8')])
print data
x =  [foo[0] for foo in data]
y =  [foo[1] for foo in data]
y2 = [foo[2] for foo in data]
y3 = [foo[3] for foo in data]
print x, y, y2, y3
dates = []
for i in x:
    date = datetime.datetime.strptime['i', '%d/%m/%Y']
    dates.append(date)

pl.plot(data[:, dates], data[:, y], '-r', label= 'High Stocking Rate')
pl.plot(data[:, dates], data[:, y2], '-g', label= 'Medium Stocking Rate')
pl.plot(data[:, dates], data[:, y3], '-b', label= 'Low Stocking Rate')
pl.title('Amount of Livestock Grazing per hectare', fontsize=18)
pl.ylabel('Livestock per ha')
pl.xlabel('Date')
pl.grid(True)
pl.ylim(0,100)
pl.show()

我立即在代碼中看到兩個問題。

date = datetime.datetime.strptime['i', '%d/%m/%Y'] should be
date = datetime.datetime.strptime('i', '%d/%m/%Y')

pl.plot(data[:, dates], data[:, y], '-r', label= 'High Stocking Rate')

Try this instead:
pl.plot_date(dates, y, '-r', label= 'High Stocking Rate')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM