【发布时间】:2020-12-15 16:27:14
【问题描述】:
我有一个图表,其中每条边(不是节点)都有容量和负载。我想使用从蓝色到红色渐变的颜色图绘制此图,红色是负载最多的,蓝色是负载较少的。我试图了解 Edge Colormap 的官方文档,但它对我没有帮助。你能帮帮我吗?
【问题讨论】:
-
这应该会有所帮助。 stackoverflow.com/q/17632151/13716967
标签: networkx
我有一个图表,其中每条边(不是节点)都有容量和负载。我想使用从蓝色到红色渐变的颜色图绘制此图,红色是负载最多的,蓝色是负载较少的。我试图了解 Edge Colormap 的官方文档,但它对我没有帮助。你能帮帮我吗?
【问题讨论】:
标签: networkx
关键是将edge_color 设置为与edgelist 重合的边序列,这两个关键字参数都是nx.draw_networkx。这是使用pandas 和networkx 的最小工作示例。
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)
应该给你这样的东西:
【讨论】: