Python 使用matplotlib模块连续显示图片
我也不知道为什么这样写有的需要show()
,循环的时候就不用,求大给我讲解,另外,循环显示多张图片时该如何写才能优雅
显示一张简单的代码如下
from matplotlib import pyplot as plt
import numpy as np
plt.imshow(np.random.randint(0, 2, (2, 2)))
plt.show()
连续的一张图变化这样写
from matplotlib import pyplot as plt
import numpy as np
while 1:
plt.cla()
plt.imshow(np.random.randint(0, 2, (2, 2)))
plt.pause(0.1)
有时候需要两张图一起对比着看,我写了这样的代码,但是图片多了或者图片大了就有卡顿的感觉,我觉得是内存没清除掉,求大佬指导
from matplotlib import pyplot as plt
import numpy as np
while 1:
plt.cla()
ax1 = plt.subplot(1, 2, 1)
ax1.imshow(np.random.randint(0, 2, (2, 2)))
ax2 = plt.subplot(1, 2, 2)
ax2.imshow(np.random.randint(0, 2, (2, 2)))
plt.pause(0.1)
ax1.cla()
ax2.cla()
连续地看梅尔频谱图,以及音高和能量
# 放在外面
fig, axes = plt.subplots(1, 1, squeeze=False)
def showww(f0, mel_spectrogram, energy):
def add_axis(fig, old_ax, offset=0):
ax = fig.add_axes(old_ax.get_position(), anchor='W')
ax.set_facecolor("None")
return ax
axes[0][0].imshow(mel_spectrogram, origin='lower')
axes[0][0].set_aspect(2.5, adjustable='box')
axes[0][0].set_ylim(0, 80)
axes[0][0].set_title('mel_spectrogram', fontsize='medium')
axes[0][0].tick_params(labelsize='x-small', left=False, labelleft=False)
axes[0][0].set_anchor('W')
ax1 = add_axis(fig, axes[0][0])
ax1.plot(f0, color='tomato')
ax1.set_xlim(0, mel_spectrogram.shape[1])
ax1.set_ylim(0, hp.f0_max)
ax1.set_ylabel('F0', color='tomato')
ax1.tick_params(labelsize='x-small', colors='tomato', bottom=False, labelbottom=False)
ax2 = add_axis(fig, axes[0][0], 1.2)
ax2.plot(energy, color='darkviolet')
ax2.set_xlim(0, mel_spectrogram.shape[1])
ax2.set_ylim(hp.energy_min, hp.energy_max)
ax2.set_ylabel('Energy', color='darkviolet')
ax2.yaxis.set_label_position('right')
ax2.tick_params(labelsize='x-small', colors='darkviolet', bottom=False, labelbottom=False, left=False,
labelleft=False, right=True, labelright=True)
# 遍历代码
plt.ion()
plt.pause(1)
ax1.cla()
ax2.cla()
ax1.axis('off')
ax2.axis('off')
# 循环showww方法即可
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/15491186.html