我需要拍摄一张图片并在经过一些处理后保存。当我显示它时,这个图看起来很好,但是在保存图之后,我在保存的图像周围有一些空白。我已经尝试了方法'tight'选项savefig,也没有工作。编码:
'tight'
savefig
import matplotlib.image as mpimg import matplotlib.pyplot as plt fig = plt.figure(1) img = mpimg.imread("image.jpg") plt.imshow(img) ax = fig.add_subplot(1, 1, 1) extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted()) plt.savefig('1.png', bbox_inches=extent) plt.axis('off') plt.show()
我正在尝试通过在图形上使用 NetworkX 来绘制基本图形并保存它。我意识到没有图表它可以工作,但是当添加图表时,我会在保存的图像周围出现空白;
import matplotlib.image as mpimg import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() G.add_node(1) G.add_node(2) G.add_node(3) G.add_edge(1, 3) G.add_edge(1, 2) pos = {1:[100, 120], 2:[200, 300], 3:[50, 75]} fig = plt.figure(1) img = mpimg.imread("image.jpg") plt.imshow(img) ax = fig.add_subplot(1, 1, 1) nx.draw(G, pos=pos) extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted()) plt.savefig('1.png', bbox_inches=extent) plt.axis('off') plt.show()
我不能声称我确切地知道我的“解决方案”为什么或如何工作,但是当我想在 PDF 文件中绘制几个翼型截面的轮廓时(没有白边距),我必须这样做。(请注意,我在 IPython 笔记本中使用了 matplotlib,带有 -pylab 标志。)
plt.gca().set_axis_off() plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0) plt.margins(0,0) plt.gca().xaxis.set_major_locator(plt.NullLocator()) plt.gca().yaxis.set_major_locator(plt.NullLocator()) plt.savefig("filename.pdf", bbox_inches = 'tight', pad_inches = 0)
我试图停用它的不同部分,但这总是会导致某处出现白边。您甚至可以对此进行修改,以使靠近图形边界的粗线不会因缺少边距而被剃掉。