我想在FigureCanvasQTAgg
内使用散点图。散点图可能有50,000或更多数据点。用户想要在绘图中绘制多边形以选择多边形内的数据点。我已经意识到通过鼠标点击设置点数并使用Axis.plot()
将它们连接起来。当用户设置了所有点时,绘制多边形。每次我添加一个新点时,我都会调用FigureCanvasQTAgg.draw()
来渲染当前版本的图。这很慢,因为散点图有如此多的数据。
有没有办法让这更快?
答案 0 :(得分:0)
两种可能的解决方案:
(如果有人想知道这个答案的质量;请注意提问者在问题下方的评论中特别要求这种结构。)
答案 1 :(得分:0)
我可以尝试使用matplotlib将散点图转换为图像来渲染它并使用imshow显示图像:
import matplotlib
matplotlib.use('QT4AGG')
import matplotlib.pyplot as plt
import Image # PIL
from io import BytesIO
from matplotlib import image
plt.scatter(xdata, ydata)
plt.axis('off')
plt.subplots_adjust(0, 0, 1, 1, 0, 0)
stream = BytesIO()
plt.savefig(stream, format='raw')
pilImage = Image.fromstring('RGBA',size=(640, 480), data = stream.getvalue())
plt.imshow(image.pil_to_array(pilImage))