微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 matplotlib 和 AutoDateLocator

如何解决使用 matplotlib 和 AutoDateLocator

我创建了一个使用 matplotlib 绘制数据的 Python 程序,直到今天它一直运行良好,但出现错误。该程序使用AutoDateLocatorConciseDateFormatter。正如您在下面错误日志的最后一行中看到的,收到的错误是:

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

由于很难发布有关我的程序功能以及使用的数据的更多详细信息,因此我想知道上述问题是否有明显的解决方案,或者您是否可以指导我去哪里寻找问题。

Tkinter 回调中的异常

回溯(最近一次调用最后一次):

文件“C:\ProgramData\Anaconda3\lib\tkinter_init_.py”,第 1883 行, 在通话

return self.func(*args)

文件“C:\Users\Nick\Desktop\Uni\TUC study\thesis\Code\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 = get_tight_layout_figure(

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\tight_layout.py",第 303 行,在 get_tight_layout_figure

kwargs = auto_adjust_subplotpars(fig,renderer,

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\tight_layout.py",第 84 行,在

auto_adjust_subplotpars

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

文件 "C:\ProgramData\Anaconda3\lib\site-packages\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:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py”,行 1030,在_update_ticks

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:

IndexError: 数组的索引太多:数组是一维的,但是是 2 已编入索引

回溯(最近一次调用最后一次):

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_qt5.py",第 480 行,在 _draw_idle self.draw()

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py",第 407 行,在画中 self.figure.draw(self.renderer)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py",第 41 行,在 draw_wrapper 中

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

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py",第 1863 行,画中

mimage._draw_list_compositing_images(

文件 “C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\image.py”,行 131,在 _draw_list_compositing_images a.draw(renderer)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py",**kwargs)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\cbook\deprecation.py",第 411 行,在包装器中 返回 func(*inner_args,**inner_kwargs)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes_base.py",第 2747 行,绘制中

mimage._draw_list_compositing_images(renderer,self,artists)

文件 “C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\image.py”,行 131,在 _draw_list_compositing_images a.draw(renderer)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\artist.py",**kwargs)

文件 “C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py”,行 1164,抽奖中

ticks_to_draw = self._update_ticks()

文件 “C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py”,行 1030,在_update_ticks

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:

IndexError: 数组的索引太多:数组是一维的,但是是 2 已编入索引

解决方法

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

当使用简单的 DateFormatter 时,没有错误,但图中既没有出现小刻度,也没有出现它们的标签。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。