首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除已保存图像周围的空白

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

Stack Overflow用户
提问于 2012-08-07 09:02:58
回答 13查看 209K关注 0票数 245

我需要拍摄一张图片,并在一些处理后保存它。当我显示该图形时,它看起来很好,但在保存图形后,我在保存的图像周围留出了一些空白。我已经尝试了savefig方法的'tight'选项,也不起作用。代码:

代码语言:javascript
复制
  import matplotlib.image as mpimg
  import matplotlib.pyplot as plt

  fig = plt.figure(1)
  img = mpimg.imread(path)
  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绘制一个基本图形并保存它。我意识到在没有图表的情况下,它可以工作,但当添加图表时,保存的图像周围会出现空白;

代码语言:javascript
复制
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()
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2014-12-01 19:45:52

我不能说我确切地知道我的“解决方案”是如何工作的,但当我想要将几个机翼截面的轮廓绘制到PDF文件中时,我不得不这样做。(请注意,我在带有-pylab标志的IPython笔记本中使用了matplotlib。)

代码语言:javascript
复制
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)

我试过停用它的不同部分,但这总会导致某个地方出现白边距。您甚至可以对此进行修改,以避免由于缺少页边距而使图形边界附近的粗线条被修剪。

票数 256
EN

Stack Overflow用户

发布于 2018-11-15 08:19:13

在尝试了上面的答案都没有成功(以及许多其他堆栈帖子)之后,最终对我起作用的是

代码语言:javascript
复制
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.savefig("myfig.pdf")

重要的是,这不包括bbox或padding参数。

票数 31
EN

Stack Overflow用户

发布于 2017-09-11 23:05:24

我从Arvind Pereira (http://robotics.usc.edu/~ampereir/wordpress/?p=626)那里找到了一些东西,似乎对我很有效:

代码语言:javascript
复制
plt.savefig(filename, transparent = True, bbox_inches = 'tight', pad_inches = 0)
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11837979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档