如果我只使用数据“ax1.plot(avgData)”,但我无法使用dateFormat作为xaxis进行绘图,请完成绘图,请帮我修复此错误,提前致谢...
dateIndex:
2013-10-16 12:42:49 2013-10-16 12:42:49 2013-10-17 09:09:53 2013-10-17 09:10:40 2013-10-17 09:10:42 2013-10-17 09:20:02 2013-10-17 09:30:02 2013-10-17 09:40:02 2013-10-17 09:48:52 2013-10-17 09:59:01 2013-10-17 10:09:01 2013-10-17 10:19:01 2013-10-17 10:29:01 2013-10-17 10:39:01 2013-10-17 10:45:24 2013-10-17 10:55:33 2013-10-17 11:00:43 2013-10-17 11:01:26 2013-10-17 11:05:33 2013-10-17 11:15:33
irValue:
124227.75 12693.62 53575.75 163444.38 0 197659.5 178733.12 202309.25 0 173196.62 0 0 209882 220471.38 37940.38 0 223880.12 224268.25 0 32587.62
我需要绘制时间和日期格式(('%d-%m-%Y%H:%M:%S'),必须每分钟监控完整的数据......
代码是:
def graphData(dateIndex,irValue,mar):
dateIndex.pop() #taking out the last data which is zero
irValue.pop() #taking out the last data to equals the size
avgData = movingaverage(irValue,mar)
spLen = len(dateIndex[mar-1:])
fig = plt.figure()
ax1 = plt.subplot2grid((5,4), (0,0), rowspan=4, colspan=4)
ax1 = plt.subplot(1,1,1)
date = mdates.strpdate2num('%Y-%m-%d %H:%M:%S')
datenum = [date(i) for i in dateIndex] # Apply date function here.
ax1.plot(datenum,avgData) #ax1.plot(avgData)
ax1.grid(True)
ax1.spines['bottom'].set_color("#5998ff")
ax1.tick_params(axis='y')
ax1.xaxis.set_major_locator(mticker.MaxNLocator(10))
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))
fig.autofmt_xdate()
plt.show()
我得到的实际错误:
Tkinter回调中的异常 Traceback(最近一次调用最后一次): 文件“C:\ Python26 \ Lib \ site-packages \ matplotlib \ axes.py”,第248行,在_xy_from_xy中 提高ValueError(“x和y必须具有相同的第一个维度”) ValueError:x和y必须具有相同的第一维
我为DateFormatter获得的错误:
_ 提高ValueError('DateFormatter发现x = 0的值,这是一个非法日期。这通常是因为你没有通知轴它正在绘制日期,例如用ax.xaxis_date()') ValueError:DateFormatter发现值为x = 0,这是一个非法日期。这通常是因为您没有告知轴它正在绘制日期,例如使用ax.xaxis_date()