python - pyplot 中的平移和缩放非常慢

标签 python matplotlib

我正在为我正在开发的机器学习项目进行可视化,并使用 matplotlib 绘制绘图。 matplotlib 的后端是 Qt4Agg。绘制的点数少于 100。

平移和缩放非常慢。您知道这可能是什么原因吗?

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

from classifier import Classifier

cl = Classifier(1)
with open("./data/enolase-01.bounds") as file:
    data = file.read().strip().split("\n")
    xdim = int(data[7].split(" ")[-1])
    ydim = int(data[8].split(" ")[-1])
    zdim = int(data[9].split(" ")[-1])

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

for i, n in enumerate(cl.X[0]):
    z = i % zdim
    y = i / zdim % ydim
    x = i / zdim / ydim % xdim
    if n == 0.0:
        continue
    ax.scatter([x], [y], [z], c='r', marker="o")
    #print x, y, z


ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

最佳答案

我发现问题是我调用 scatter 的次数太多了。我对 700 多个点中的每一个点调用一次,每个点都是一个散点图。将所有内容放入单个调用中消除了平移和缩放中的所有滞后。

关于python - pyplot 中的平移和缩放非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37400173/

相关文章:

python - Splinter,打开浏览器但无法访问网页

python - 为什么我的程序没有在控制台输出任何东西(使用 Python 中的面向对象编程)?

python - 在子图之间绘制分隔符或线条

python - 如何使用 python matplotlib 估计卫星图像中的像素数

python - matplotlib 中使用 latex 的无衬线数学

python - Matplotlib:从多个子图中抓取单个子图

python - 将卡住的 TensorFlow pb 包装在 tf.keras 模型中

Python - 这是初始化空集矩阵的正确方法吗?

python - 在 Jupyter 笔记本中使用 Matplotlib 进行交互式绘图时,图形未填充 Canvas

python - matplotlib中imshow()的 'turn off'模糊效果如何处理?