使用matplotlib.pyplot
,我想创建一个条形图,并将其保存到没有轴,边框和其他空格的图像中。 Save spectrogram (only content, without axes or anything else) to a file using Matloptlib的答案以及所有相关问题和相应答案似乎都不适用于条形图。
到目前为止,我得到了:
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1)
fig.subplots_adjust(left=0,right=1,bottom=0,top=1)
fig.patch.set_facecolor('xkcd:mint green')
ax.set_facecolor('xkcd:salmon')
ax.axis('off')
ax.bar(1,1,1,-1,alpha=1, align='center', edgecolor='black')
ax.bar(2,1,1,-2,alpha=1, align='center', edgecolor='black')
ax.axis('off')
fig.savefig('test.png', dpi=300, frameon='false', pad_inches=0.0,bbox_inches='tight')
有三个问题:
答案 0 :(得分:1)
bbox_inches='tight'
。这与没有空格的愿望是矛盾的。
此外,轴内部还有一些 轴边距,因为这些条纹当然不直接位于轴边界处。您可以设置ax.margins(0)
。ax.set_aspect(1)
。当然,只有当图形也设置为具有相等的宽度和高度时,这才有意义。总计。
import matplotlib.pyplot as plt
fig,ax = plt.subplots(figsize=(5,5))
fig.subplots_adjust(left=0,right=1,bottom=0,top=1)
fig.patch.set_facecolor('xkcd:mint green')
ax.set_facecolor('xkcd:salmon')
ax.axis('off')
ax.margins(0)
ax.set_aspect(1)
ax.bar(1,1,1,-1,alpha=1, align='center', edgecolor='black')
ax.bar(2,1,1,-2,alpha=1, align='center', edgecolor='black')
fig.savefig('test.png', dpi=300, frameon=False, pad_inches=0.0)