使用matplotlib和AutoDateLocator的python程序出现奇怪错误

使用matplotlib和AutoDateLocator的python程序出现奇怪错误,python,matplotlib,date-formatting,Python,Matplotlib,Date Formatting,我已经创建了一个python程序,它使用matplotlib来绘制数据,并且一直运行良好,直到今天,出现了一个错误。程序使用自动日期定位器和简明格式。如下面错误日志的最后一行所示,收到的错误为: > IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed 由于很难发布更多关于我的程序功能以及使用的数据的详细信息,我想知道是否有一个明显的解决上述问题的方法,或者您是否可以指导我在哪

我已经创建了一个python程序,它使用matplotlib来绘制数据,并且一直运行良好,直到今天,出现了一个错误。程序使用自动日期定位器简明格式。如下面错误日志的最后一行所示,收到的错误为:

> IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
由于很难发布更多关于我的程序功能以及使用的数据的详细信息,我想知道是否有一个明显的解决上述问题的方法,或者您是否可以指导我在哪里查找问题

Tkinter回调中的异常

回溯(最近一次呼叫最后一次):

文件“C:\ProgramData\Anaconda3\lib\tkinter\u init\uuuz.py”,第1883行, 在呼叫中

return self.func(*args)
文件“C:\Users\Nick\Desktop\Uni\TUC 研究\论文\代码\ python\test\myGUI_V3.py“,第841行,在plotMeas中

fig.tight_layout()
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\cbook\deprecation.py”, 第411行,输入

包装纸

return func(*inner_args, **inner_kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\figure.py”, 第2613行,紧凑布局 kwargs=抓紧布局图(

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\tight\u layout.py”, 第303行,在get_tight_布局图中

kwargs = auto_adjust_subplotpars(fig, renderer,
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\tight\u layout.py”, 第84行,在

自动调整子批次

bb += [ax.get_tightbbox(renderer, for_layout_only=True)]
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axes\u base.py”, 第4155行,在

拿到紧盒子

bb_xaxis = self.xaxis.get_tightbbox(
ticks_to_draw = self._update_ticks()
ticks_to_draw = self._update_ticks()
ticks_to_draw = self._update_ticks()
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1109号,在收货箱里

bb_xaxis = self.xaxis.get_tightbbox(
ticks_to_draw = self._update_ticks()
ticks_to_draw = self._update_ticks()
ticks_to_draw = self._update_ticks()
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1030,在更新中

minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\dates.py”,第行 797,格式为

if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
索引器错误:数组的索引太多:数组是一维的,但为2 索引

回溯(最近一次呼叫最后一次):

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\backends\backend\u qt5.py”, 第480行,输入 _空转 self.draw()

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\backends\backend\u agg.py”, 第407行,绘制中 self.figure.draw(self.renderer)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\figure.py”, 第1863行,绘制中

mimage._draw_list_compositing_images(
mimage._draw_list_compositing_images(
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\image.py”,第行 131,在 _绘制\列表\合成\图像 a、 绘制(渲染器)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\cbook\deprecation.py”, 第411行,在包装器中 返回函数(*内部参数,**内部参数)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axes\u base.py”, 第2747行,绘制中

mimage._draw_list_compositing_images(renderer, self, artists)
mimage._draw_list_compositing_images(renderer, self, artists)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\image.py”,第行 131,在 _绘制\列表\合成\图像 a、 绘制(渲染器)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1164,平局

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1030,在更新中

minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\dates.py”,第行 797,格式为

if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
索引器错误:数组的索引太多:数组是一维的,但为2 索引

回溯(最近一次呼叫最后一次):

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\backends\backend\u qt5.py”, 第480行,输入 _空转 self.draw()

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\backends\backend\u agg.py”, 第407行,绘制中 self.figure.draw(self.renderer)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\figure.py”, 第1863行,绘制中

mimage._draw_list_compositing_images(
mimage._draw_list_compositing_images(
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\image.py”,第行 131,在 _绘制\列表\合成\图像 a、 绘制(渲染器)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\cbook\deprecation.py”, 第411行,在包装器中 返回函数(*内部参数,**内部参数)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axes\u base.py”, 第2747行,绘制中

mimage._draw_list_compositing_images(renderer, self, artists)
mimage._draw_list_compositing_images(renderer, self, artists)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\image.py”,第行 131,在 _绘制\列表\合成\图像 a、 绘制(渲染器)

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\artist.py”, 第41行,在draw_包装中

return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
return draw(artist, renderer, *args, **kwargs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1164,平局

文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第行 1030,在更新中

minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
minor_labels = self.minor.formatter.format_ticks(minor_locs)
文件 “C:\ProgramData\Anaconda3\lib\site packages\matplotlib\dates.py”,第行 797,格式为

if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
if len(np.unique(tickdate[:, level])) > 1:
索引器错误:数组的索引太多:数组是一维的,但为2 索引


事实证明,AutoDateLocator的设置存在问题。由于特定的数据集,无法根据我为minticks、maxticks和intervald元组选择的值正确设置次要刻度。因此,ConcidateFormatter尝试使用定位器时对于小刻度,出现了上述错误


使用简单的DateFormatter时,没有出现错误,但小刻度和它们的标签都没有出现在绘图上。

这可能值得向matplotlib报告一个自包含的示例。它至少应该更优雅地出错。