我需要拍摄一张图片,并在一些处理后保存它。当我显示该图形时,它看起来很好,但在保存图形后,我在保存的图像周围留出了一些空白。我已经尝试了savefig
方法的'tight'
选项,也不起作用。代码:
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绘制一个基本图形并保存它。我意识到在没有图表的情况下,它可以工作,但当添加图表时,保存的图像周围会出现空白;
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()
发布于 2014-12-01 19:45:52
我不能说我确切地知道我的“解决方案”是如何工作的,但当我想要将几个机翼截面的轮廓绘制到PDF文件中时,我不得不这样做。(请注意,我在带有-pylab标志的IPython笔记本中使用了matplotlib。)
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)
我试过停用它的不同部分,但这总会导致某个地方出现白边距。您甚至可以对此进行修改,以避免由于缺少页边距而使图形边界附近的粗线条被修剪。
发布于 2018-11-15 08:19:13
在尝试了上面的答案都没有成功(以及许多其他堆栈帖子)之后,最终对我起作用的是
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参数。
发布于 2017-09-11 23:05:24
我从Arvind Pereira (http://robotics.usc.edu/~ampereir/wordpress/?p=626)那里找到了一些东西,似乎对我很有效:
plt.savefig(filename, transparent = True, bbox_inches = 'tight', pad_inches = 0)
https://stackoverflow.com/questions/11837979
复制相似问题