0%

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

❓ 我需要拍摄图像并经过一些处理将其保存。 显示该图形时,它看起来不错,但是保存该图形后,在保存的图像周围有一些空白。 我已经尝试过savefig方法的tight选项,但是也没有用。 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
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绘制基本图形并将其保存。 我意识到没有图就可以了,但是当添加图时,保存的图像周围会有空白;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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("C:\\images\\1.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文件时,这就是我要做的。 (请注意,我在带有-pylab标志的IPython笔记本中使用了matplotlib。)

1
2
3
4
5
6
7
8
gca().set_axis_off()
subplots_adjust(top = 1, bottom = 0, right = 1, left = 0,
hspace = 0, wspace = 0)
margins(0,0)
gca().xaxis.set_major_locator(NullLocator())
gca().yaxis.set_major_locator(NullLocator())
savefig("filename.pdf", bbox_inches = 'tight',
pad_inches = 0)

我尝试停用此功能的不同部分,但这总是在某处导致空白。 您甚至可以对此进行修改,以防止由于缺乏边距而使图形附近的粗线不被刮掉。