如何将Matplotlib自定义图例映射到Networkx图?

时间:2019-02-18 09:28:56

标签: python matplotlib networkx

我已经为Networkx图创建了一个有效的自定义图例,但是无法将其映射到Networkx图上。

创建图例:

    def _add_legend(self):
        handles = []
        for process, colour in self.colour_map.items():
            handles.append(patches.Patch(color=colour, label=process))

        self.legend = plt.legend(handles=handles)

当我添加plt.show()时,我意识到这是在创建一个单独的图。

绘制图形:

    def _plot(self):
        k = 5/math.sqrt(self.graph.order())
        fig = plt.figure(0)
        pos = nx.spring_layout(self.graph)

        nx.draw(self.graph, arrows=True, with_labels=True, font_size=10, node_color=self.colours, k=k)
        nx.draw_networkx_edges(self.graph, pos=pos, edgelist=self.edges)
        fig.savefig("output.png")

如何将使用matplotlib创建的图例映射到Networkx图?

谢谢。

1 个答案:

答案 0 :(得分:1)

在问题正文中没有明确说明,但是我在{em> _add_legend()之后是_plot()。我将fig.savefig()移动到了图例功能的末尾,它可以正常工作。

人为错误。大家星期一快乐。