python - 如何在 matplotlib.pyplot 中保存没有边框/边距的图形?
问题描述
我知道这里有一个非常相似的问题。但是,我尝试了那里发布的所有可能的解决方案,但绝对没有一个对我有用。这就是我提出这个问题的原因。
这就是我所拥有的:
import matplotlib.pyplot as plt
from scipy.io import wavfile
sample_rate, samples = wavfile.read('audio-mono-70.wav')
fig = plt.figure(figsize=(6,1), dpi=500, frameon=False)
ax = plt.Axes(fig, [0,0,1,1])
ax.set_facecolor((0.169,0.169,0.169))
ax.set_xlim(left=0, right=700000)
fig.add_axes(ax)
plt.tick_params(axis='both', which='both', bottom=False,
top=False, left=False, right=False,
labelbottom=False, labeltop=False,
labelright=False, labelleft=False)
plt.plot(samples)
plt.savefig('samples.png')
有了这个,我得到了我想要的一切,除了那些边距的存在。这里是。
我想要的是这样的东西。我手动修改了这张图片,只是为了向您展示我需要的东西。我需要图像没有那些小边距。我正在设置 x 限制,因为我希望绘图到达图像的左右边界,但是黑色边距妨碍了。
使用bbox_inches='tight'
and pad_inches=0
, 似乎在较新版本的 matplotlib 中不起作用,并且 usingplt.savefig(fname, bbox_inches='tight', transparent=True, pad_inches=0)
对我也不起作用。我得到完全相同的结果。也尝试了extent = mpl.transforms.Bbox(((0, 0), (width, height)))
然后bbox_inches=extent
,但仍然没有。那个帖子里的都没有。
我怎样才能做到这一点?
提前致谢。
编辑 1
添加了代码以创建与创建绘图完全相同的数组。
在这里找到完全相同的音频
编辑 2
最初的 rgb 值将其ax.set_facecolor()
设置为黑色,但图像具有灰色的 facecolor。在此编辑中修复。
解决方案
我在其他地方得到了帮助,这些边界/边距被称为刺。
在我的情况下,它们以下列方式被删除:
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
推荐阅读
- c++ - 为 glViewport(0, 0, framebufferWidth, framebufferHight) 抛出异常;
- amp-html - AMP-电子邮件安全
- c++ - 关于拓扑图中的方向性
- r - 如何处理 R 中的非零(实际上为零)特征值?
- html - 当父 div 宽度改变时下移 div
- c++ - 在一个类中,`using Base::BaseOfBase;` 应该做什么?
- javascript - 内容脚本被注入每一帧,但似乎没有执行
- android - 如何将这些整数传递给另一个活动?
- go - 如何在 FaunaDB 中获取包含子字符串的文档
- .net-core - 如何在一段时间内获取 Windows 中的总体 CPU 使用百分比