我有一个图,其中每条边(不是节点)都有一个容量和一个负载。我想用一个从蓝色到红色的渐变图来绘制这个图,红色是负载最多的,蓝色是负载最少的。我试图理解Edge Colormap的官方文档,但它对我没有帮助。你能帮帮我吗?
发布于 2020-12-16 02:23:09
关键是将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)应该会让你得到这样的东西:

https://stackoverflow.com/questions/65309822
复制相似问题