python - 将无向 NetworkX 图变为有向 NetworkX 图
问题描述
我对下面的代码有问题。边连接节点。但是有没有可能有一个有向网络,如果一个“人”跟随一个“人”,但这只是一种方式,在边缘有箭头或方向。
plt.figure(figsize=(12, 12))
#Create the graph
g = nx.from_pandas_dataframe(peoples_only, source='people_id', target='mans_id')
layout = nx.spring_layout(g,k=0.05, iterations=1)
people_size = [g.degree(people) * 30 for people in peoples]
nx.draw_networkx_nodes(g,
layout,
nodelist=peoples,
node_size=people_size, # a LIST of sizes, based on g.degree
node_color='lightblue')
#draw all
nx.draw_networkx_nodes(g, layout, nodelist=mans, node_color='#cccccc', node_size=100)
#draw popular peoples
popular_mans = [man for man in mans if g.degree(man) > 1]
nx.draw_networkx_nodes(g, layout, nodelist=popular_mans, node_color='orange', node_size=100)
nx.draw_networkx_edges(g, layout, width=1, edge_color="#cccccc")
node_labels = dict(zip(peoples, peoples))
nx.draw_networkx_labels(g, layout, labels=None)
nx.write_gexf(g, "test.gexf")
plt.axis('off')
plt.title("People mans network")
plt.show()
解决方案
创建图表时指定create_using=nx.DiGraph()
g = nx.from_pandas_edgelist(peoples_only, source='people_id', target='mans_id', create_using=nx.DiGraph())
这将为您提供从 people_id 到 mans_id 的有向图。
推荐阅读
- virtual-machine - 适用于 Windows Server 的 KVM 虚拟化鼠标不稳定
- java - JPA 查询或自定义查询根据两个表中的搜索词查找结果
- matlab - 你能用 ~any() 帮助我理解这两条 matlab 行吗
- python - 在文本文件python tkinter中生成新行的条目末尾的随机空间
- php - 如何打印最多 10 个不在数组中的数字?
- php - 将数组分解为多维数组(父->子->子子)
- permissions - WSL 2 复制具有保留属性的字符设备文件失败
- kubernetes - 什么会导致部署中的 pod 挂载卷
- javascript - 如何使用 HTML 中选中的 1 或 2 个可能的框制作清单
- amazon-web-services - AWS S3 存储桶:什么是 TagStorage-TagHrs