网络图超图

编程入门 行业动态 更新时间:2024-10-25 14:24:34
本文介绍了网络图超图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

有人熟悉networkx吗?

is anyone familiar with networkx?

我尝试获取一个超图,在这里我想将Hyperedges设置为列表中其他有色节点(大小取决于其值).我想将节点设置为其他列表. networkx网站上的文档和示例确实是多余的,但我相信这是可能的.

I try to get a hypergraph, where i want to set the Hyperedges as other colored nodes (size dependent on their value) out of an list. And i want to set the Nodes out of an other list. The documentation and examples on the networkx website are really spare, but i am sure it is possible.

我从此示例,但这只是针对不同边缘的示例.有人可以告诉我如何在networkx中放置具有不同颜色/大小的两个不同的节点集吗?

I started with this example, but this is only an example for different edges. Can someone tell me how i can put up two different set of nodes with different color/size in networkx?

推荐答案

是否要使用nx.draw_networkx_nodes和nodelist参数使用类似的方法

Did you want something like this use nx.draw_networkx_nodes using nodelist parameter:

# Author: Aric Hagberg (hagberg@lanl.gov) import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() G.add_edge('a', 'b', weight=0.6) G.add_edge('a', 'c', weight=0.2) G.add_edge('c', 'd', weight=0.1) G.add_edge('c', 'e', weight=0.7) G.add_edge('c', 'f', weight=0.9) G.add_edge('a', 'd', weight=0.3) elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5] esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] <= 0.5] pos = nx.spring_layout(G) # positions for all nodes # nodes nx.draw_networkx_nodes(G, pos, node_size=700, nodelist=['e','f','b']) nx.draw_networkx_nodes(G, pos, node_size=1400, nodelist=['c','a','d'], node_color='blue') # edges nx.draw_networkx_edges(G, pos, edgelist=elarge, width=6) nx.draw_networkx_edges(G, pos, edgelist=esmall, width=6, alpha=0.5, edge_color='b', style='dashed') # labels nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif') plt.axis('off') plt.show()

输出:

还要更改标签和形状:

# Author: Aric Hagberg (hagberg@lanl.gov) import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() G.add_edge('a', 'b', weight=0.6) G.add_edge('a', 'c', weight=0.2) G.add_edge('c', 'd', weight=0.1) G.add_edge('c', 'e', weight=0.7) G.add_edge('c', 'f', weight=0.9) G.add_edge('a', 'd', weight=0.3) elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] > 0.5] esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['weight'] <= 0.5] pos = nx.spring_layout(G) # positions for all nodes # nodes nx.draw_networkx_nodes(G, pos, node_size=700, nodelist=['e','f','b']) nx.draw_networkx_nodes(G, pos, node_size=1400, nodelist=['c','a','d'], node_color='blue', node_shape='^') # edges nx.draw_networkx_edges(G, pos, edgelist=elarge, width=6) nx.draw_networkx_edges(G, pos, edgelist=esmall, width=6, alpha=0.5, edge_color='b', style='dashed') # labels nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif', labels={'f':'f','e':'e','b':'b'}) nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif', font_color='white', labels={'d':'d','a':'a','c':'c'}) plt.axis('off') plt.show()

输出:

更多推荐

网络图超图

本文发布于:2023-07-18 20:11:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1148588.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:超图   网络图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!