1
私が作業している機械学習プロジェクトの視覚化を行っています。私はプロットに対してmatplotlibを使用しています。 matplotlibのバックエンドはQt4Aggです。プロットされた点の数は100未満です。pyplotのパンとズームは非常に遅い
パンとズームは非常に遅いです。あなたはこれの理由を知ることができますか?
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()
あなたのコードには、何が起こっているのかを説明するものはありません。ただし、あなたの例を[MCVE](https://stackoverflow.com/help/mcve)に減らし、機能を再度確認することを検討してください。チャンスはスローダウンが他のコードと関連していることです。また、 'enumerate'はタプルを返します。最初の要素は整数(インデックス)で、2番目の要素はイテレータの要素です。あなたの(表示された)コードは、 'import classifier ... 'を削除し、numpyの' ndarray'を使って 'ax.scatter'を一度呼び出すだけで減らすことができます。 問題がどこにあるかを知るために、まずコードを減らしてください。 –
私は、問題は私が散乱方法を何度も呼び出していることを知っていました。私は700点以上のポイントごとに1回呼びます。それぞれは散布図です。すべてを単一の呼び出しにすると、パンとズームのすべての遅れが取り除かれました。 –