gpt4 book ai didi

python - 在 NetworkX 中无法将图形保存为 jpg 或 png 文件

转载 作者:太空狗 更新时间:2023-10-29 20:21:34 26 4
gpt4 key购买 nike

我在 NetworkX 中有一个图表,其中包含一些信息。图表显示后,我想将其保存为 jpgpng 文件。我使用了 matplotlib 函数 savefig 但是当图像被保存时,它不包含任何东西。它只是一个白色图像。

这是我写的示例代码:

import networkx as nx
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(12,12))
ax = plt.subplot(111)
ax.set_title('Graph - Shapes', fontsize=10)

G = nx.DiGraph()
G.add_node('shape1', level=1)
G.add_node('shape2', level=2)
G.add_node('shape3', level=2)
G.add_node('shape4', level=3)
G.add_edge('shape1', 'shape2')
G.add_edge('shape1', 'shape3')
G.add_edge('shape3', 'shape4')
pos = nx.spring_layout(G)
nx.draw(G, pos, node_size=1500, node_color='yellow', font_size=8, font_weight='bold')

plt.tight_layout()
plt.show()
plt.savefig("Graph.png", format="PNG")

为什么保存的图像里面没有任何东西(只有白色)?

这是保存的图像(只是空白): enter image description here

最佳答案

plt.show方法有关。

show 方法的帮助:

def show(*args, **kw):
"""
Display a figure.

When running in ipython with its pylab mode, display all
figures and return to the ipython prompt.

In non-interactive mode, display all figures and block until
the figures have been closed; in interactive mode it has no
effect unless figures were created prior to a change from
non-interactive to interactive mode (not recommended). In
that case it displays the figures but does not block.

A single experimental keyword argument, *block*, may be
set to True or False to override the blocking behavior
described above.
"""

当您在脚本中调用 plt.show() 时,似乎文件对象之类的东西仍处于打开状态,并且写入的 plt.savefig 方法无法读取那流完全。但是 plt.show 有一个 block 选项可以改变这种行为,所以你可以使用它:

plt.show(block=False)
plt.savefig("Graph.png", format="PNG")

或者只是评论一下:

# plt.show()
plt.savefig("Graph.png", format="PNG")

或者在显示之前保存:

plt.savefig("Graph.png", format="PNG")
plt.show()

演示: Here

关于python - 在 NetworkX 中无法将图形保存为 jpg 或 png 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com