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

新手上路,请多包涵

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

原文由 Ahmet Tuğrul Bayrak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 754
2 个回答

我不能说我确切地知道我的“解决方案”为什么或如何工作,但当我想将几个机翼截面的轮廓(没有白边)绘制到 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)

我试图停用它的不同部分,但这总是会导致某处出现空白。您甚至可以修改它以防止靠近图形极限的粗线条因缺少边距而被削掉。

原文由 Johannes S. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题