我正在尝试使用networkx创建一个图像,保存该图像以供以后使用,然后稍后在其上叠加一个绘图。然而,当我尝试加载图像并创建新点时,比例似乎不太合适。我已经尝试了所有能找到的方法来使它们同步,但我不确定此时还能尝试什么。这里有一个简单的例子:
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
G = nx.dodecahedral_graph()
pos = nx.spring_layout(G)
plt.box(False)
nx.draw_networkx_edges(G, pos=pos)
fig.canvas.draw()
data = np.array(plt.gcf().canvas.get_renderer().buffer_rgba(), dtype=np.uint8)
extent = list(plt.xlim() + plt.ylim())
所以现在我有了一个图表,并将该图像保存到
data
,并已将该图的范围保存到
extent
。然后,我想从以下位置重新绘制该图
数据
并将图中的节点叠加在存储在
pos
.
plt.imshow(data, extent=extent)
plt.box(False)
nx.draw_networkx_nodes(G, pos=pos, node_color='green')
由于某种原因,原始图像的比例缩小了,因此节点最终处于更大的比例,与边缘不匹配。我保存图像的方式有问题吗?