为了保存波谱图像,典型的代码如下:
###########################
import matplotlib.pyplot as plt
import librosa.display
y, sr = librosa.load(filename)
fig = plt.Figure()
canvas = FigureCanvas(fig)
...
librosa.display.specshow(logmelspec, sr=sample_rate, x_axis='time', y_axis='log')
fig.savefig('spec.png')
问题是,'fig'是在Figure类中创建的,也是FigureCanvas的一个参数,librosa.display.specshow是一个属于librosa.display类的函数。
- fig如何知道fig.savefig的输入数据?
- fig和librosa之间的数据交换是如何工作的?
1.当我运行这段代码时,它确实按预期保存了正确的图像(但是,如果我构建一个基于FileDialog的应用程序,加载一个新的wav文件并再次调用“fig.savefig”,图像将变得随机)。
1条答案
按热度按时间8hhllhi21#
看来下面的方法可以解决这个问题,