首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在绘图上使用鼠标滚动,Matplotlib交互式绘图将崩溃

如果在绘图上使用鼠标滚动,Matplotlib交互式绘图将崩溃
EN

Stack Overflow用户
提问于 2018-10-18 14:57:37
回答 1查看 279关注 0票数 0

这个问题似乎在我的Macbook Pro (osx10.13.6)上使用plt.show()和Matplotlib绘制数据时都会发生。如果我创建一个Pandas数据帧并使用Matplotlib绘制数据,然后在交互式窗口(使用plt.show)的屏幕上显示结果,窗口(和matplotlib)将经常崩溃。如果鼠标的向上或向下滚动手势是在屏幕上完成的,则总是会发生这种情况。其他时候,它似乎是随机发生的。

当绘图崩溃时,我会得到以下内容作为回溯:

代码语言:javascript
复制
Traceback (most recent call last):
File "./plot_lc_vs_gnss.py", line 117, in <module>
  main()
File "./plot_lc_vs_gnss.py", line 28, in main
  plt.show()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/pyplot.py", line 253, in show
  return _show(*args, **kw)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 208, in show
  cls.mainloop()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 1073, in mainloop
  Tk.mainloop()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 557, in mainloop
  _default_root.tk.mainloop(n)
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

我正在读取的数据是一个简单的CSV,它以前也是由熊猫生成的。我正在用一个简单的脚本生成这个情节,如下所示:

代码语言:javascript
复制
#!/usr/local/bin/python3
import matplotlib
matplotlib.use('TkAgg') 
import json
import os
import numpy as np
import pandas as pd
import pymap3d as pm
import matplotlib.pyplot as plt

def load_csvs():
gnss = pd.read_csv('di3_d4_1017_gnss.csv')
ins = pd.read_csv('di3_d4_1017_ins.csv')

return gnss, ins

def plot_cdf(gnss, ins):

data = [gnss, ins]

    plt.figure(figsize=[12,9])
    ax = plt.subplot(1,1,1)

    for ds in data:
        if ds[err].any != np.nan:
            dsorted = np.sort(ds['horizontal_error'])
            yvals = np.arange(len(dsorted)) / float(len(dsorted) - 1) * 100
            ax.plot(dsorted, yvals)
    ax.grid()
    ax.set_xlabel('Horizontal Error (m)')
    ax.set_ylabel('Percent of Epochs')
    title = 'Drive Test data \n DI-3 (roof) d4_1017 \n CDF Horizontal Error'
    plt.title(title)
    plt.legend(['gnss', 'ins'], loc='lower right')


def main():
gnss, ins = load_csvs()

plot_cdf(gnss, ins)
plt.show()

if __name__ == "__main__":
main() 

任何关于如何解决这个问题的建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 23:42:48

我猜到现在已经无关紧要了,但这似乎是#9637正在讨论的一个未解决的问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52868557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档