【问题标题】:Networkx Edge Colormap Based on Attribute基于属性的 Networkx 边缘颜色图
【发布时间】:2020-12-15 16:27:14
【问题描述】:

我有一个图表,其中每条边(不是节点)都有容量和负载。我想使用从蓝色到红色渐变的颜色图绘制此图,红色是负载最多的,蓝色是负载较少的。我试图了解 Edge Colormap 的官方文档,但它对我没有帮助。你能帮帮我吗?

【问题讨论】:

标签: networkx


【解决方案1】:

关键是将edge_color 设置为与edgelist 重合的边序列,这两个关键字参数都是nx.draw_networkx。这是使用pandasnetworkx 的最小工作示例。

import networkx as nx
import pandas as pd

edge_df = pd.DataFrame({"source": [0, 1, 2],
                       "target": [1, 2, 0],
                       "capacity": [.1, .2, .3],
                       "load": [40, 20, 10]})

G = nx.from_pandas_edgelist(edge_df,
                            source="source",
                            target="target",
                            edge_attr=["capacity", "load"])

nx.draw_networkx(G,
                 edgelist=list(zip(edge_df['source'], edge_df['target'])),
                 edge_color=edge_df['capacity'],
                 edge_cmap=plt.cm.bwr)

应该给你这样的东西:

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多