首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TypeError:不可散列的类型:'list‘,使用add edge from networkx

这个错误是由于使用了不可散列的类型(list)作为参数,而在使用networkx库的add_edge函数时,该函数要求传入的参数必须是可散列的类型。

在networkx中,图的边是通过节点之间的连接来表示的。add_edge函数用于在图中添加一条边。它的参数是两个节点,这两个节点必须是可散列的类型,以便能够在图中正确地表示和操作。

解决这个错误的方法是将不可散列的类型(list)转换为可散列的类型。可以使用tuple函数将list转换为tuple,因为tuple是不可变的,所以是可散列的。

以下是一个示例代码:

代码语言:txt
复制
import networkx as nx

G = nx.Graph()

node1 = (1, 2)
node2 = (3, 4)
edge = [node1, node2]

G.add_edge(*edge)

print(G.edges())

在这个示例中,我们将list类型的edge转换为tuple类型,然后将其作为参数传递给add_edge函数。最后,我们打印出图中的边。

关于networkx库的更多信息和使用方法,可以参考腾讯云的相关产品介绍链接地址:networkx产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

networkx(图论)是什么

1、向图中增加边 边是由对应顶点名称构成,例如,顶点2和3之间有一条边,记作e=(2,3),通过add_edge(node1,node2)向图中添加一条边,也可以通过add_edges_from(list...(edges_list) 4、更新边得属性: 通过边来更新边属性,由两种方式,一种是使用update函数,一种是通过属性赋值来实现: g[1][2]['weight'] = 4.7 g.edge[1]...,并选取第1行第1子图作为绘图背景 nx.draw(G) plt.subplot(122) 创建一个1行2图形,选取第1行第2子图作为绘图背景 nx.draw(G,pos=nx.circular_layout...:使用FR算法来定位节点; ##spectral_layout:利用图拉普拉斯特征向量定位节点 案例2: # 案例2: G = nx.Graph() G.add_edge('A','B',weight...G = nx.Graph() G.add_edge(1,2) G.add_node(3) print(list(nx.isolates(G))) # 遍历 G = nx.Graph() G.add_weighted_edges_from

3.9K21

networkx对象使用

----1.创建dataclasses类`dataclasses` 是 Python 中一个模块,用于简化创建不可变数据类过程,自动添加特殊方法(如 `__init__`、`__repr__`、`_...: int value: int color: str同时为了使其化,重写Node类__hash__方法和__eq__方法:__hash__方法将perma_id作为node对象值...,由于是perma_id,而且python会动态增加列表长度所以基本不会发生冲突,__eq__函数将两个对象是否相同依据改为它们perma_id是否相同,因为两个对象如果逻辑上相同,那么它们哈希值一定相同...(node1, node2)graph.add_edge(node1, node3)graph.add_edge(node1, node4)graph.add_edge(node1, node5)print...同时,如果使用是字典类型数据,也可以使用映射或者filter方法去获取字典详细数据,也可以将字典映射存储到数据库中,或者将节点和边存储到数据库中,而不是存储整个图结构。

20620
  • networkx是什么

    1、向图中增加边 边是由对应顶点名称构成,例如,顶点2和3之间有一条边,记作e=(2,3),通过add_edge(node1,node2)向图中添加一条边,也可以通过add_edges_from(list...g.add_edge(2,3) g.add_edges_from([(1,2),(1,3)]) g.edges() g.add_edge(1, 2, weight=4.7, relationship='...(edges_list) 4、更新边得属性: 通过边来更新边属性,由两种方式,一种是使用update函数,一种是通过属性赋值来实现: g[1][2]['weight'] = 4.7 g.edge[1]...,(1,4,{"name":"tt"}),(4,5,{"name":"yy"})] G.add_edges_from(list1) print(G.edges()) #仅仅提供边信息,可以通过属性g.edges...:使用FR算法来定位节点; ##spectral_layout:利用图拉普拉斯特征向量定位节点 案例2: G = nx.Graph() G.add_edge('A','B',weight=0.5) G.add_edge

    4.8K60

    NetworkX + Gephi + Nebula Graph 分析人物关系(下篇)

    NetworkX 支持 4 种类型图: Graph:无向图 DiGraph: 有向图 MultiGraph: 多重无向图 MultiDiGraph: 多重有向图 在 NetworkX 中创建一个无向图...: import networkx as nx G = nx.Graph() 添加顶点: G.add_node(1) G.add_nodes_from([2,3,4]) G.add_node(2,name...='Tom',age=23) 添加边: G.add_edge(2,3) G.add_edges_from([(1,2),(1,3)]) g.add_edge(1, 2, start_year=1996,...,该函数可以先使用 scan_edge_processor 对 scan_edge_response 中数据进行解码,解码后数据可以直接打印出来,也可以做一些简单处理,另作他用,比如:将这些数据读入计算框架.../test.png') 绘制出来图: [NetworkX 绘制图] 2) 打印出图中所有点和边: print('nodes: ', list(G.nodes)) print('edges: ',

    2.4K31

    一文读懂Python复杂网络分析库networkx | CSDN博文精选

    如果没有指明,则会是spring布局;也可以使用其他类型布局,具体可以查阅networkx.layout arrows :布尔值,默认True; 对于有向图,如果是True则会画出箭头 with_labels...linewidths:[None|标量|一值];图像边界线宽 width: 边宽度 (默认为1.0) edge_color: 边颜色(默认为黑色) edge_cmap:Matplotlib颜色映射...3 14F.add_edges_from([(1,2),(1,3)]) #通过添加list来添加多条边 15 16H = nx.path_graph(10) #返回由10个节点无向图...['v'+str(i) for i in range(1, 22)] 10# 添加顶点 11G.add_nodes_from(vertex_list) 12 13# 边列表 14edge_list =...1, 22)] 11# 添加顶点 12G.add_nodes_from(vertex_list) 13 14# 边列表 15edge_list = [ 16 ('v1

    27.4K42

    pyecharts︱交互式pyecharts相关使用教程

    用 Echarts 生成图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。以下是最新版echart靓图。...输出方式还有PDF: bar.render(path="render.png") 同时也可以使用flask/Django进行封装, ---- 二、笔者关注几个图表 2.1 画出花样散点图 from...,可以借用: networkx 库(可参考笔者博文:关系图︱python 关系网络可视化NetworkX(与Apple.Turicreate深度契合)) from __future__ import...1111', category=1) g.add_edge('FF12C904', 'FF12CA02') g.add_edge('FF12C904', 'FF12C326') g.add_edge.../喜欢/分享/评论数")) ) bar.render_notebook() add_xaxis ,增加x信息 add_yaxis,增加y信息 set_global_opts,设置变量环节 render_notebook

    3.1K10

    NetworkX,网络结构图最强绘制工具·····

    安装 NetworkX 你可以使用 pip 命令来安装 NetworkX: pip install networkx 创建图结构 NetworkX 允许你创建不带权重或带权重图,有向图或无向图。...例如,创建一个简单无向图: import networkx as nx # 创建一个无向图 G = nx.Graph() G.add_nodes_from([1, 2, 3]) G.add_edges_from...matplotlib.pyplot as plt G = nx.Graph() G.add_edge(1, 2) G.add_edge(1, 3) G.add_edge(1, 5) G.add_edge...(G, pos, **node_opts) nx.draw_networkx_labels(G, pos, font_size=14) # Extract color from edge data edge_colors...了解图表类型和用途: 了解不同类型科研图表,例如折线图、柱状图、散点图等,以及它们在传达信息方面的优缺点。 注重细节和清晰性: 细节决定成败,确保图表字体清晰、线条精细、标签明了,避免视觉混乱。

    1.4K30

    NetworkX使用手册

    NetworkX中,节点可以是任何哈希对象,像一个文本字符串,一幅图像,一个XML对象,甚至是另一个图或任意定制节点对象。(注意,Python中None对象是不可以作为节点类型。)...我们可以通过一些简单操作开始  最简单我们一次添加一个节点: `G.add_node(1)` 也可以从一个list中添加节点:  `G.add_nodes_from([2, 3])` 或者从**nbunch...G.add_node(1) G.add_edge(1,2) G.add_node("spam") #添加节点"spam" G.add_nodes_from("spam") #添加节点's'...默认情况下这些是一个空字典,但是我们可以增加或者是改变这些属性通过使用add_edge,add_node或者字典操作这些属性字典,比如G.graph,G.node或者G.edge。...- 边点属性 通过add_edge(),add_edges_from()来添加边属性,下表或者G.edge[][][]来修改属性。

    3K20

    Python如何使用Networkx实现复杂的人物关系图?

    network模块使用、列表基本操作、循环使用、excel文件读写、pandas应用、matplotlib应用、类使用、元组操作等,便于大家阅读本文前提前对相关知识进行回顾。...那我们如何使用Python来实现类似的人物关系图呢? 这里我们需要用到Pythonnetworkx模块,它可以帮助我们很好显示我们需要效果。...2 关于Networkx 2.1 Networkx简单说明 NetworkX是一个用于创建、操作和研究复杂网络 Python 库; 可以创建、分析和可视化各种类型网络,例如社交网络、Web图、生物网络等...; NetworkX可以用来创建各种类型网络,包括有向图和无向图; 提供各种方法来添加、删除和修改网络中节点和边; NetworkX还提供许多图算法和分析工具; NetworkX还提供多种方式来可视化网络...从上边错误看,其实就是我的人物角色有29个,但是颜色只有23个,没有对应起来; 为了避免错误,我们把人物和颜色一个表,需要时候选对应数据就行: 孙悟空 aliceblue 菩提祖师

    84360

    Python如何使用Networkx实现复杂的人物关系图?

    network模块使用、列表基本操作、循环使用、excel文件读写、pandas应用、matplotlib应用、类使用、元组操作等,便于大家阅读本文前提前对相关知识进行回顾。...那我们如何使用Python来实现类似的人物关系图呢? 这里我们需要用到Pythonnetworkx模块,它可以帮助我们很好显示我们需要效果。...2 关于Networkx 2.1 Networkx简单说明 NetworkX是一个用于创建、操作和研究复杂网络 Python 库; 可以创建、分析和可视化各种类型网络,例如社交网络、Web图、生物网络等...; NetworkX可以用来创建各种类型网络,包括有向图和无向图; 提供各种方法来添加、删除和修改网络中节点和边; NetworkX还提供许多图算法和分析工具; NetworkX还提供多种方式来可视化网络...(node) # 添加有向边 for edge in range(len(my_node)-1): print(edge) G.add_edge(my_node[edge], my_node

    60620

    python数据结构之图

    使用NetworkX,您可以以标准和非标准数据格式加载和存储网络,生成多种类型随机和经典网络,分析网络结构,构建网络模型,设计新网络算法,绘制网络,等等 要实现边和节点示意如下,不过在实现过程中均以无向图为主...g.add_edge(2, 3) g.add_edge(3, 4) nx.draw_networkx(g) plt.show() 结果如下: 2、通过列表实现无向图,并绘制出来...nx.draw_networkx_edge_labels(g, pos, edge_labels=edge_labels) plt.show() 结果如下: 4、在图可视化中继续追加节点位置和边权重...nx.draw_networkx_edge_labels(g, pos, edge_labels=edge_labels) # 获取边权重,即对长度进行转换 edgewidth = list...=",list(nx.isolates(g))) # 获得图中非连通点列表 = [] g.add_node(8) print("获得图中非连通点列表=", list(nx.isolates

    1.6K20

    Python 实现社交网络可视化,看看你的人脉影响力如何

    作者 | 俊欣 来源 | 关于数据分析与可视化 我们平常都会使用很多社交媒体,有微信、微博、抖音等等,例如在微博上面,我们会关注某些KOL,同时自己身边亲朋好友等等也会来关注我们自己,成为我们自己粉丝...() 接下来我们进行数据清洗,具体思路就是将空值去除掉,并且数据集当中“Connected on”这一,内容是日期,但是数据类型却是字符串,因此我们也需要将其变成日期格式。...,主要用到networkx模块以及pyvis模块, g = nx.Graph() g.add_node(0, label = "root") # intialize yourself as central...size代表着节点大小,然后我们将这些个节点相连接 g.add_edge(0, 1) g.add_edge(0, 2) g.add_edge(0, 3) 最后出来样子如下图 我们先从小编的人脉中,... = f"{positions}"     hover_info = title + position_list     g.add_node(company, size=count

    37930

    使用Python进行网络数据可视化方法与技巧

    使用matplotlib绘制网络图matplotlib是Python中最常用绘图库之一,它可以用于绘制各种类型图形,包括网络图。...使用Plotly创建交互式网络图Plotly是一个强大Python库,可用于创建各种类型交互式图表,包括网络图。...这些只是入门级示例,您可以根据实际需求和数据特点进一步扩展和定制可视化效果。4. 使用NetworkX进行复杂网络分析与可视化NetworkX是Python中用于创建、操作和研究复杂网络结构库。...= nx.Graph()​# 添加节点G.add_nodes_from([1, 2, 3, 4, 5])​# 添加边G.add_edges_from([(1, 2), (1, 3), (2, 3), (...以下是一个示例,展示如何使用Pyvis创建一个交互式网络图:from pyvis.network import Networkimport networkx as nx​# 创建一个空无向图G = nx.Graph

    52120
    领券