首页 > 解决方案 > 交互性不适用于 matplotlib TkAgg 后端

问题描述

我正在尝试使用 matplotlib 进行交互式绘图。绘图已渲染,但交互不起作用。这个

import matplotlib.pyplot as plt
import numpy as np

plt.figure()
data = np.random.rand(10)
plt.plot(data)

def onclick(event):
    plt.cla()
    plt.plot(data)
    print('click event')
    plt.gca().set_title('Event at pixels {},{} \nand data {},{}'.format(event.x, event.y, event.xdata, event.ydata))

plt.gcf().canvas.mpl_connect('button_press_event', onclick)
plt.show()

这会产生这个数字,但是当我不确定问题是因为“button_press_event”还是后端“TkAgg”时。

matplotlib.__version__
'3.1.1'

mpl.get_backend()
'TkAgg'

tkinter.TkVersion
Out[8]: 8.6

我也尝试过使用Qt5Agg后端,但仍然没有成功地让交互工作。

matplotlib.get_backend()
'Qt5Agg'

from PyQt5.QtCore import QT_VERSION_STR
QT_VERSION_STR
'5.13.2'

from PyQt5.Qt import PYQT_VERSION_STR
PYQT_VERSION_STR
'5.13.2'

from sip import SIP_VERSION_STR
SIP_VERSION_STR
'5.0.0'

标签: pythonpython-3.xmatplotlib

解决方案


推荐阅读