1
matplotlib中有没有一种方法可以检查轴的当前显示区域中有哪些艺术家?
我有一个带有互动人物的程序,偶尔会吸引许多艺术家。在此图中,您也可以使用鼠标缩放和平移。但是,在平移缩放期间的性能不是很好,因为每个艺术家总是会被重画。有没有一种方法可以检查当前显示区域中的哪些艺术家并仅重画这些艺术家?(在下面的示例中,性能仍然相对不错,但是可以通过使用更多或更多复杂的艺术家来任意恶化) 我的方法也遇到类似的性能问题hover,无论何时调用它,它都会canvas.draw()在最后运行。但是正如您所看到的,我通过使用缓存和恢复轴的背景(基于此)找到了一种解决方案。这极大地提高了演奏性能,现在即使有许多艺术家,它的运行也非常流畅。也许有一种类似的方法,但是对于panand zoom方法呢? 很抱歉,冗长的代码示例与问题没有直接关系,但对于一个有效的示例来突出此问题是必需的。 编辑 我更新了MWE,使之更能代表我的实际代码。 import numpy as np import numpy as np import sys import matplotlib.pyplot as plt from matplotlib.backends.backend_qt5agg import \ FigureCanvasQTAgg import matplotlib.patheffects as PathEffects from matplotlib.text import Annotation from matplotlib.collections import LineCollection from PyQt5.QtWidgets import QApplication, QVBoxLayout, QDialog def check_limits(base_xlim, base_ylim, new_xlim, new_ylim): if new_xlim[0] …