当前位置: 首页 > 知识库问答 >
问题:

使用matplotlib和AutoDateLocator的python程序发生奇怪错误

上官兴昌
2023-03-14

我创建了一个python程序,它使用matplotlib绘制数据,直到今天它一直工作正常,发生了错误。该程序使用AutoDateLocator和ConciseDateFor的。正如您在下面错误日志的最后一行中看到的,接收到的错误是:

> IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

由于很难发布更多关于我的程序功能以及所用数据的细节,我想知道是否有一个明显的解决上述问题的方法,或者您是否可以指导我在哪里可以找到问题。

Tkinter回调中的异常

Traceback(最近一次调用):

文件“C:\程序数据\阿纳康达3\lib\tkinter_init_.py”,第 1883 行,呼叫中

return self.func(*args)

文件“C:\ Users \ Nick \ Desktop \ Uni \ TUC studies \ thesis \ Code \ python \ test \ my GUI _ v3 . py”,第841行,在plotMeas中

fig.tight_layout()

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\cbook\deprecation.py",第411行,在

包装材料

return func(*inner_args, **inner_kwargs)

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\figure.py",第2613行,以tight_layoutkwargs=get_tight_layout_figure(

get_tight_layout_figure中文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ tight _ layout . py”第303行

kwargs = auto_adjust_subplotpars(fig, renderer,

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\tight_layout.py”,第 84 行,在

auto_adjust_subplotpars

bb += [ax.get_tightbbox(renderer, for_layout_only=True)]

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\axes_base.py",第4155行,在

get_tightbbox

bb_xaxis = self.xaxis.get_tightbbox(

文件“C:\ProgramData\Anaconda3\lib\site packages\matplotlib\axis.py”,第1109行,位于get_tightbbox中

ticks_to_draw = self._update_ticks()

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\axis.py",第1030行,_update_ticks

minor_labels = self.minor.formatter.format_ticks(minor_locs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ dates . py”,第797行,格式标记中

if len(np.unique(tickdate[:, level])) > 1:

IndexError:数组的索引太多:数组是一维的,但索引了2个

Traceback(最近一次调用):

_draw_idleself.draw()中的文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\后端\backend_qt5.py",第480行

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ backends \ back ends _ agg . py”,第407行,在draw self . figure . draw(self . renderer)中

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py”,第 1863 行,绘制中

mimage._draw_list_compositing_images(

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\image.py",第131行,_draw_list_compositing_imagesa.draw(渲染器)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ProgramData\Anaconda3\lib\site packages\matplotlib\cbook\deprecation.py”,第411行,包装返回函数(*inner_args,**inner_kwargs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ axes _ base . py”,第2747行,在draw中

mimage._draw_list_compositing_images(renderer, self, artists)

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\image.py",第131行,_draw_list_compositing_imagesa.draw(渲染器)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ axis . py”,第1164行,在draw中

ticks_to_draw = self._update_ticks()

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\axis.py",第1030行,_update_ticks

minor_labels = self.minor.formatter.format_ticks(minor_locs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ dates . py”,第797行,格式标记中

if len(np.unique(tickdate[:, level])) > 1:

IndexError:数组的索引太多:数组是一维的,但索引了2个

回溯(最近一次调用):

_draw_idleself.draw()中的文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\后端\backend_qt5.py",第480行

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ backends \ back ends _ agg . py”,第407行,在draw self . figure . draw(self . renderer)中

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py”,第 1863 行,绘制中

mimage._draw_list_compositing_images(

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\image.py",第131行,_draw_list_compositing_imagesa.draw(渲染器)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ProgramData\Anaconda3\lib\site packages\matplotlib\cbook\deprecation.py”,第411行,包装返回函数(*inner_args,**inner_kwargs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ axes _ base . py”,第2747行,在draw中

mimage._draw_list_compositing_images(renderer, self, artists)

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\image.py",第131行,_draw_list_compositing_imagesa.draw(渲染器)

文件“C:\ProgramData\Anaconda3\lib\site-packages\matplotib\artist.py”,第 41 行,draw_wrapper

return draw(artist, renderer, *args, **kwargs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ axis . py”,第1164行,在draw中

ticks_to_draw = self._update_ticks()

文件"C:\编程数据\Anaconda3\lib\站点包\matplotlib\axis.py",第1030行,_update_ticks

minor_labels = self.minor.formatter.format_ticks(minor_locs)

文件“C:\ program data \ anaconda 3 \ lib \ site-packages \ matplotlib \ dates . py”,第797行,格式标记中

if len(np.unique(tickdate[:, level])) > 1:

IndexError:数组的索引太多:数组是一维的,但索引了2个

共有1个答案

富辰阳
2023-03-14

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

当使用简单的日期格式化程序时,没有错误,但是小刻度和它们的标签都没有出现在图上。

 类似资料:
  • 我刚刚键入,我得到了这个错误: 我没有找到任何关于任何有相同错误的人的参考,

  • 问题内容: 我一般对Python和编程都不熟悉,所以如果我遗漏了一些明显的东西,请提前道歉。我正在尝试绘制图形并标记轴,但是每次尝试标记y轴时都会引发异常。我在下面的新脚本中编写了代码,以确保问题不是来自模块中的其他地方。我正在使用Python 3.4。 每次,我在最后一行收到错误“ TypeError:’str’对象不可调用”。如果我将y更改为x,一切都很好。如果将x更改为ay,则会收到相同的错

  • 问题内容: 我遇到了图例和错误栏绘图命令的相当奇怪的行为。我将Python xy 2.7.3.1与 以下代码结合使用,以例证所观察到的行为: 这产生了这个情节: 如您所见,错误栏上限正在覆盖散点图。如果我增加zorder足够多,这种情况将不再发生,但是情节线将覆盖图例。我怀疑问题与matplotlib的zorder问题有关。 快速,肮脏,hacky解决方案也受到赞赏。 编辑(感谢@nordev):

  • 问题内容: 我正在尝试在PostgreSQL 9.1中做到这一点: 结果是: 好的,让我们使用以下命令执行相同的查询: 我们再次看到了我们的商品,但是一开始!!! 事实是该表包含以下两项: 我通过一种解决方法解决了这种情况: 但是什么地狱??? !!! 为什么必须使用替代方法? 问题答案: 宣誓就不会更改定义此行为的SQL标准。 除非在中指定,否则 行的顺序是 不确定的。每个文档: 如果未选择排序

  • 我在打印报告时出现了一个奇怪的错误。

  • 问题内容: 我正在使用此代码: 但是在编译时出现此错误: 然后是堆栈跟踪的编译器错误。 我将在课堂开始时同时进行这两种导入: 有什么事吗 在Netbeans中,我看到自动完成选项并且Locale对象没有语法错误… 问题答案: 您的设置有些麻烦,下面的程序对我来说很好用。 它要求源代码的事实使我相信它正在尝试以某种调试模式进行编译或运行。您不需要编译java.util。*的源代码,这很奇怪。 看看我