1
私は4次元の配列を持っています.4次元を「時間」次元とみなします。連続するフレームは、最初の2つの次元を使用して2Dヒートマップとしてプロットされています。あなたは「アニメーション」を取得しています。実行時間を測定すると、かなり低い26フレームで16秒間を取得しています。どのようにして、以下のコードの実行時間を短縮できますか? matplotlibの代わりにSeabornを使ってヒートマップを作成したいと思っています(後者の拡張でも)。Seabornヒートマップ実行時間の最適化をプロットする
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import time
data = np.load('data.npy')
fig = plt.figure()
ax = fig.add_subplot(111)
im = sns.heatmap(np.zeros((256, 128)), cmap = 'viridis', vmin = 0, vmax = 90)
plt.show(block = False)
start = time.time()
for i in range (0, data[0, 0, 0, :].size):
plt.clf()
sns.heatmap(20*np.log10(abs(data[:, :, 2, i])), cmap = 'viridis', vmin = 0, vmax = 90)
fig.canvas.draw()
end = time.time()
print(end - start)
どのように事前に計算について: '20 * np.log10( np.abs(data)) 'を実行する前にループ内に入り、ループ内の演算を使用する必要はありませんか? – Divakar
良いアイデア - それは約4秒で改善しました - 今26フレームが11.7秒で表示されます。いくつかのデータ:https://drive.google.com/open?id=0B6ksYqU-Jy7sRkczaVBLS3NuOUU –
私は約12.5Hzのフレームレートが必要です - このデータセットの全体の表示時間は約2-3秒でなければなりません。 –