小编典典

删除已保存图像周围的空白

all

我需要拍摄一张图片并在经过一些处理后保存。当我显示它时,这个图看起来很好,但是在保存图之后,我在保存的图像周围有一些空白。我已经尝试了方法'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()

阅读 132

收藏
2022-05-16

共1个答案

小编典典

我不能声称我确切地知道我的“解决方案”为什么或如何工作,但是当我想在 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)

我试图停用它的不同部分,但这总是会导致某处出现白边。您甚至可以对此进行修改,以使靠近图形边界的粗线不会因缺少边距而被剃掉。

2022-05-16