如何解决使用 matplotlib 和 AutoDateLocator
我创建了一个使用 matplotlib 绘制数据的 Python 程序,直到今天它一直运行良好,但出现错误。该程序使用AutoDateLocator 和ConciseDateFormatter。正如您在下面错误日志的最后一行中看到的,收到的错误是:
> 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 的设置问题。由于特定的数据集,根据我为 minticks、maxticks 和 intervald选择的值,无法正确设置次要刻度em> 选择的元组。结果,当ConciseDateFormatter 尝试使用定位器进行小刻度时,出现了上述错误。
当使用简单的 DateFormatter 时,没有错误,但图中既没有出现小刻度,也没有出现它们的标签。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。