我想绘制一首歌曲的频谱图,用作卷积神经网络的图像分类功能。因此,输出图像必须尽可能干净,没有任何标签/轴/刻度等。
从各种来源,我设法通过在box_inches=tight
方法上设置plt.savefig
来禁用matplotlib默认绘制的边框。尽管如此,我试图绘制的任何图像上都有一个小边框。
此示例代码不使用实际音频文件,但仍然可以看到小边框:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import librosa
import librosa.display
import numpy as np
plt.axis('off')
S = np.array([[1,2,3], [2,2,1], [3,1,3]])
librosa.display.specshow(S) # i suspect this method to somehow draw the border
plt.margins(0) # as suggested by Eran W
plt.savefig('test.png', transparent=False, bbox_inches='tight', pad_inches=0)
plt.close()
我在the official documentations中找不到该方法的任何内容,也不知道如何调试此问题。任何提示?
答案 0 :(得分:0)
您可以通过调用:
通过matplotlib
设置边距
plt.margins(0)
docs:https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.margins.html
答案 1 :(得分:0)
我遇到了同样的问题,我找到了这个示例代码:
newPanel.setLocationRelativeTo(parentPanel);