我也不知道为什么这样写有的需要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方法即可