【问题标题】:Cannot save graph made in Networkx and matplotlib无法保存在 Networkx 和 matplotlib 中制作的图形
【发布时间】:2018-12-06 03:36:18
【问题描述】:

我正在使用 NetworkX 和 matplotlib 以 png 图像作为节点来绘制图形。这是我的代码:

import networkx as nx 
import matplotlib.pyplot as plt 
G = nx.DiGraph()

#DRAWING EDGES ON AXIS 
G.add_edges_from(([1,2],[3,4],[5,6],[7,8]))
pos = nx.circular_layout(G)
fig = plt.figure(figsize=(20, 20)) 
ax = plt.axes([0, 0, 15, 15])
ax.set_aspect('equal') 
nx.draw_networkx_edges(G, pos, ax=ax, arrows=True)

#TRANSFORMING COORDINATES 
trans = ax.transData.transform 
trans2 = fig.transFigure.inverted().transform 

#PUTTING IMAGE INSTEAD OF NODES 
size = 0.2 
p2 = size / 2.0 

for n in G:
   xx, yy = trans(pos[n]) 
   xa, ya = trans2((xx, yy)) 
   a = plt.axes([xa - p2, ya - p2, size, size])
   a.set_aspect('equal')
   a.imshow(image, aspect='auto')
   a.axis('off')

plt.savefig('save.png') 
plt.show()

Jupyter notebook 显示图表。但是,当我使用 Pycharm 时,它显示空白的白色图形。通过 plt.savefig() 保存也不起作用。我尝试在 plt.savefig() 中使用 dpi 但没有改变任何东西。将非常感谢任何线索。

【问题讨论】:

  • 你能重新格式化你的代码吗?缩进 4 个空格告诉 stackoverflow 它是代码。有 '>' 告诉 stackoverflow 它是一个引号。

标签: python matplotlib networkx


【解决方案1】:

在保存的同时添加bbox_inches='tight'解决了这个问题:

plt.savefig('save.png',bbox_inches='tight')

此参数会减少输出图像周围不必要的空白边距。没有它,只能保存整个图形的一部分。

关于如何在 matplotlib 中保存纯图像的有价值的讨论在这里: scipy: savefig without frames, axes, only content

您可以在轴内找到图像的 bbox(使用 get_window_extent),并使用 bbox_inches 参数仅保存 图像的那部分

【讨论】:

    【解决方案2】:

    我以前也遇到过类似的情况。你能试试这个吗:

    import matplotlib 
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    

    【讨论】:

    • 谢谢jdv,我试过了,但没有任何改变。显示图表也不是那么重要,对我来说至关重要的是保存它。
    • @ElaSz 我没有提供这个答案。为了清楚起见,我只是对其进行了编辑。如果它不能解决您的问题,您可以忽略它或投反对票。
    【解决方案3】:

    plt.axes 需要一个矩形,其坐标表示为图形画布的一部分。给定figsize=(20,20)

    ax = plt.axes([0, 0, 15, 15])
    

    应该是

    ax = plt.axes([0, 0, 0.75, 0.75])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-03
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      相关资源
      最近更新 更多