Python Matplotlib类时间和日期x轴
我有下面的函数(saveFigure),当我运行独立实例(其中x是date)和其他实例(其中x是time)时,该函数可以正常工作 但在一个python实例中,如果我使用x作为日期,然后使用x作为时间调用此函数,我会得到以下错误:Python Matplotlib类时间和日期x轴,python,matplotlib,Python,Matplotlib,我有下面的函数(saveFigure),当我运行独立实例(其中x是date)和其他实例(其中x是time)时,该函数可以正常工作 但在一个python实例中,如果我使用x作为日期,然后使用x作为时间调用此函数,我会得到以下错误: plt.savefig(param.location + os.sep + param.fileName + str(dim) + '.png') File "C:\Anaconda\lib\site-packages\matplotlib\pyplot.py"
plt.savefig(param.location + os.sep + param.fileName + str(dim) + '.png')
File "C:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 472, in savefig
return fig.savefig(*args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\figure.py", line 1370, in savefig
self.canvas.print_figure(*args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 161, in print_figure
FigureCanvasAgg.print_figure(self, *args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\backend_bases.py", line 2096, in print_figure
**kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\backends\backend_agg.py", line 492, in print_png
FigureCanvasAgg.draw(self)
File "C:\Anaconda\lib\site-packages\matplotlib\backends\backend_agg.py", line 440, in draw
self.figure.draw(self.renderer)
File "C:\Anaconda\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\figure.py", line 1006, in draw
func(*args)
File "C:\Anaconda\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\axes.py", line 2086, in draw
a.draw(renderer)
File "C:\Anaconda\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\axis.py", line 1050, in draw
ticks_to_draw = self._update_ticks(renderer)
File "C:\Anaconda\lib\site-packages\matplotlib\axis.py", line 937, in _update_ticks
tick_tups = [t for t in self.iter_ticks()]
File "C:\Anaconda\lib\site-packages\matplotlib\axis.py", line 881, in iter_ticks
majorLocs = self.major.locator()
File "C:\Anaconda\lib\site-packages\matplotlib\ticker.py", line 897, in __call__
raise NotImplementedError('Derived must override')
NotImplementedError: Derived must override
def saveFigure(self, df, x, y, param, dim, timeBased):
ax = plt.subplot(111)
ax.bar(x, y)
if hasattr(param, 'title'):
ax.set_title(param.title)
if hasattr(param, 'ylabel'):
if hasattr(param.ylabel, '__iter__') and dim < len(param.ylabel):
ax.set_ylabel(param.ylabel[dim])
else:
ax.set_ylabel(param.ylabel)
if hasattr(param, 'xlabel'):
ax.set_xlabel(param.xlabel)
plt.gcf().autofmt_xdate()
plt.savefig(param.location + os.sep + param.fileName + str(dim) + '.png')
plt.savefig(param.location+os.sep+param.fileName+str(dim)+'.png')
savefig中第472行的文件“C:\Anaconda\lib\site packages\matplotlib\pyplot.py”
返回图savefig(*args,**kwargs)
savefig中的文件“C:\Anaconda\lib\site packages\matplotlib\figure.py”,第1370行
self.canvas.print_图(*args,**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\backends\backend\u qt4agg.py”,第161行,如图所示
图canvasagg.打印图(self,*args,**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\backend\u base.py”,第2096行,如图所示
**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\backends\backend\u agg.py”,第492行,打印格式为png
图CAVASAGG.draw(自绘制)
文件“C:\Anaconda\lib\site packages\matplotlib\backends\backend\backend\u agg.py”,绘图中第440行
self.figure.draw(self.renderer)
文件“C:\Anaconda\lib\site packages\matplotlib\artist.py”,第54行,在draw\u包装中
绘制(艺术家、渲染器、*args、**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\figure.py”,第1006行,在绘图中
func(*args)
文件“C:\Anaconda\lib\site packages\matplotlib\artist.py”,第54行,在draw\u包装中
绘制(艺术家、渲染器、*args、**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\axes.py”,第2086行,在绘图中
a、 绘制(渲染器)
文件“C:\Anaconda\lib\site packages\matplotlib\artist.py”,第54行,在draw\u包装中
绘制(艺术家、渲染器、*args、**kwargs)
文件“C:\Anaconda\lib\site packages\matplotlib\axis.py”,第1050行,在绘图中
勾号\u到\u绘制=自。\u更新\u勾号(渲染器)
文件“C:\Anaconda\lib\site packages\matplotlib\axis.py”,第937行,在更新中
tick_tups=[t代表self.iter_ticks()中的t]
文件“C:\Anaconda\lib\site packages\matplotlib\axis.py”,第881行,在iter\U中
majorLocs=self.major.locator()
调用中第897行的文件“C:\Anaconda\lib\site packages\matplotlib\ticker.py”__
raise NOTEImplementedError('派生必须重写')
NotImplementedError:派生必须重写
def saveFigure(自身、df、x、y、参数、dim、基于时间):
ax=plt.子批次(111)
轴杆(x,y)
如果hasattr(参数“title”):
ax.集合标题(参数标题)
如果hasattr(参数'ylabel'):
如果hasattr(param.ylabel,“\uuu iter””)和dim
一次心理调试的尝试:你能尝试在两次连续的saveFigure
调用之间用plt.clf()
清除图形吗?就是这样。。。。谢谢你,伙计