networkx绘图

NetworkX入门及实战教程 NetworkX是一个基于Python的库,用于创造、操作复杂网络,是专门用作网络分析的工具包。 阅读详情

导入数据集画人物关系图

利用三国人物关系数据集,利用NetworkX生成可视化图,让刘备、曹操和孙权处于中心位置。

我们先来看几个重要的参数

G (必填参数)

类型: networkx.Graph 或其子类实例

作用: 指定要绘制的图对象。这是您要可视化的网络结构,包括节点、边以及可能附加的属性。

pos (可选参数)

类型: dict 或 nx.layout.Layout

作用: 定义节点的位置。通常是一个字典,其中键是节点,值是对应的二维坐标(如 (x, y))。如果未提供,draw() 会自动应用一个布局算法(如 spring_layout、circular_layout 等)来确定节点的位置。也可以直接提供一个 nx.layout.Layout 对象,该对象已包含节点的位置信息。

with_labels (可选参数)

类型: bool

作用: 控制是否在图中显示节点标签。如果设置为 True,节点名称或自定义标签(如果已设置)将被显示在相应节点附近。默认通常是 False。

辅助参数:

node_color, node_size, node_shape, node_edgecolor, node_facecolor, node_zorder (等)

类型: 各自对应的数据类型(例如颜色字符串、数值、形状字符串、Z-order 整数等)

作用: 设置节点的各种可视化属性,如颜色、大小、形状、边缘颜色、填充颜色及 Z-order 层叠顺序。这些参数允许您根据节点属性或自定义规则个性化节点的外观。

edge_color, width, style, alpha, edge_zorder (等)

类型: 各自对应的数据类型(例如颜色字符串、数值、线条样式字符串、透明度浮点数、Z-order 整数等)

作用: 控制边的视觉特性,包括颜色、线宽、线型(如实线、虚线、点线等)、透明度以及 Z-order 层叠顺序。这些参数有助于区分不同类型的边或突出特定边。

labels (可选参数)

类型: dict 或 callable

作用: 提供节点标签的自定义映射。如果是一个字典,键是节点,值是标签文本。如果是一个可调用对象,它接受节点作为输入并返回相应的标签文本。这允许您覆盖节点原有的标签或动态生成标签。

font_size, font_weight, font_family, font_color (等)

类型: 字符串或数值

作用: 设置节点标签和其他文本元素的字体属性,如字号、粗细、字体家族和颜色。这些参数确保标签清晰易读且与整体绘图风格协调。

ax (可选参数)

类型: matplotlib.axes.Axes

作用: 指定要在哪个 matplotlib 的 Axes 对象上绘制图。如果您正在在一个复杂的绘图环境中工作,可以利用此参数将网络图添加到现有的坐标轴中,而不是创建一个新的图形窗口。

arrows, arrowstyle, arrowsize, connectionstyle, connector (等)

类型: 各自对应的数据类型(例如布尔值、字符串、数值等)

作用: 控制边箭头的绘制,包括是否显示箭头、箭头样式、大小、连接线段的样式以及自定义连接器。这些参数对于强调图的有向性或增强视觉效果非常有用。

bbox, pad, frameon (等)

类型: 各自对应的数据类型(例如 matplotlib.transforms.Bbox, 数值, 布尔值等)

作用: 调整图形周围边框(边界框)的属性,如尺寸、内边距和是否显示背景框架。这些参数有助于控制图的整体布局和美观。

其他高级参数:

nodelist, edgelist, linewidths, edgecolors, widths, heights, depths, kws (等)

类型: 列表、数组、字典或其他数据类型,视具体参数而定

作用: 这些参数允许您对特定节点、边或整个图的某些方面进行更精细的控制,如选择要绘制的节点和边子集、设置特定边的线宽和颜色、控制三维布局的维度参数等。kws 是一个字典,可以传递给底层 matplotlib 函数以进一步自定义绘图行为。

好,接下来,我们直接来看源代码:

导入包包

import networkx as nx
import pandas as pd
import matplotlib.pyplot as plt

 导入数据库

df_relations = pd.read_csv('triples.csv')
df_relations

 取出相应数据

for _, row in df_relations.iterrows():
    a,b,c,d=row
    print(f'a:{a},b:{b},c:{c},d:{d}')

创建空图

G = nx.Graph()
for _, row in df_relations.iterrows():
    person_A, person_B,relationship_english, relationship = row
    G.add_node(person_A)
    G.add_node(person_B)
    G.add_edge(person_A, person_B, type=relationship)
center_nodes = ['刘备', '曹操', '孙权']

# 使用你喜欢的布局算法,这里以spring_layout为例
pos = nx.spring_layout(G, k=0.6, iterations=50)

# 手动调整中心节点的位置
center_pos = {'刘备': (0, 0), '曹操': (-0.2, 0), '孙权': (0.2, 0)}
for node, coord in center_pos.items():
    pos[node] = coord

# 可以微调其他节点的位置以避免过于拥挤
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False

node_colors = [ 'lightblue' if node in center_nodes else 'white' for node in G.nodes()]
node_sizes = [1000 if node in center_nodes else 300 for node in G.nodes()]

fig=plt.figure(figsize=(16, 16))
nx.draw_networkx_nodes(G, pos, node_color=node_colors, node_size=node_sizes)
nx.draw_networkx_edges(G, pos, alpha=0.5)
nx.draw_networkx_labels(G, pos, font_size=10)

plt.axis('off')
plt.title('三国人物关系图')
plt.show()
fig.savefig('三国人物关系图.jpg')

然后这就Ok了,

利用NetworkX生成全连接神经网络图,该神经网络有三层,输入层、隐藏层和输出层神经元分别为3,8,2.

话不多说了,直接来源代码

# -*- coding:utf-8 -*-
import networkx as nx
import matplotlib.pyplot as plt

# 创建DAG
G = nx.DiGraph()

# 顶点列表
vertex_list_I = ['I' + str(i) for i in range(3)]
vertex_list_H = ['H' + str(i) for i in range(8)]
vertex_list_O = ['O' + str(i) for i in range(2)]
# 添加顶点
G.add_nodes_from(vertex_list_I)
G.add_nodes_from(vertex_list_H)
G.add_nodes_from(vertex_list_O)
# 边列表
edge_list = [
    ('I0', 'H0'),
    ('I0', 'H1'),
    ('I0', 'H2'),
    ('I0', 'H3'),
    ('I0', 'H4'),
    ('I0', 'H5'),
    ('I0', 'H6'),
    ('I0', 'H7'),
    ('I1', 'H0'),
    ('I1', 'H1'),
    ('I1', 'H2'),
    ('I1', 'H3'),
    ('I1', 'H4'),
    ('I1', 'H5'),
    ('I1', 'H6'),
    ('I1', 'H7'),
    ('I2', 'H0'),
    ('I2', 'H1'),
    ('I2', 'H2'),
    ('I2', 'H3'),
    ('I2', 'H4'),
    ('I2', 'H5'),
    ('I2', 'H6'),
    ('I2', 'H7'),
    ('H0', 'O0'),
    ('H0', 'O1'),
    ('H1', 'O0'),
    ('H1', 'O1'),
    ('H2', 'O0'),
    ('H2', 'O1'),
    ('H3', 'O0'),
    ('H3', 'O1'),
    ('H4', 'O0'),
    ('H4', 'O1'),
    ('H5', 'O0'),
    ('H5', 'O1'),
    ('H6', 'O0'),
    ('H6', 'O1'),
    ('H7', 'O0'),
    ('H7', 'O1'),
]
# 通过列表形式来添加边
G.add_edges_from(edge_list)

# 指定绘制DAG图时每个顶点的位置
pos = {
    'I0': (-2, -0.8),
    'I1': (-2, -1.8),
    'I2': (-2, -2.8),
    'H0': (-1, 2),
    'H1': (-1, 1),
    'H2': (-1, 0),
    'H3': (-1, -1),
    'H4': (-1, -2),
    'H5': (-1, -3),
    'H6': (-1, -4),
    'H7': (-1, -5),
    'O0': (0, -1),
    'O1': (0, -2),
}
node_colors = [
    "red" if _ == "I" else "green" if _ == "H" else "blue"
    for _, data in G.nodes()
]
# 绘制DAG图
plt.figure(figsize=(16,8))
plt.title('neural network')  #图片标题
plt.xlim(-2.2, 2.2)  #设置X轴坐标范围
# plt.ylim(-3, 3)  #设置Y轴坐标范围

nx.draw(
    G,
    pos=pos,  # 点的位置
    node_color=node_colors,  # 顶点颜色
    edge_color='black',  # 边的颜色
    with_labels=True,  # 显示顶点标签
    font_size=10,  # 文字大小
    node_size=300  # 顶点大小
)
# 显示图片
plt.show()

NetworkX使用手册 介绍NetworkX是一款Python的软件包,用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能。 有了NetworkX你就可以用标准或者不标准的数据格式加载或者存储网络,它可以产生许多种类的随机网络或经典网络,也可以分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。 如果在此之前你还不太了解Python,戳这里——>python新手教程安装其实如果要用NetworkX来 阅读详情

相关推荐

networkx —— 基本操作及画图

networkx是Python里网络实现的一个库,这里简单记录一些简单的用法和使用过程中的菜鸡看法。

qq_45677518的博客 7890

python基础 - networkx 绘图总结

networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。 利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。 networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。 networkx以图(graph)为基本数据

Rnan_prince的博客 5万+

Python Network(二)绘图draw系列draw(),draw_networkx(),draw_networkx_nodes(),draw_networkx_edges()

Python Network(一) 目录1. nx.draw()1.1 示例2. draw_networkx()2.1 示例2.2 补充:matplotlib颜色对照表3. draw_networkx_nodes() 本文主要讲解network最后的绘图功能 1. nx.draw() 默认情况下,将图形绘制为没有节点标签或边缘标签且使用完整Matplotlib图形区域且无轴标签的简单表示形式。有关...

青风learing 2万+

networkx是什么

networkx简介: networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。图是由顶点、边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系。顶点和边也可以拥有更多的属性,以存储更多的信息。 对于networkx创建的无向图,允许一条边的两个顶点是相同的,即允许出现自循环,但是不允许两个顶点之间存在多条边,即出现平行边。边和...

梦游娃娃的博客 3万+

用 python绘图及网络分析(win64下matplotlib,networkx安装方法)

matplotlib是python下最著名的绘图库,它的特点是:Matlab的语法,使用python语言实现,latex的画图质量,下面列一下win64,python2.7环境完整安装matplotlib所需要的软件包:  1. matplotlib-1.4.2.win-amd64-py2.7.exe  2. numpy-MKL-1.9.1.win-amd64-py2.7.exe  3. p

peonyding的专栏 2358

如何在Proteus中模拟Arduino

进一步的Proteus可用于设计任何与Arduino相关的项目,它将在进入硬件级别之前提供更好的理解。由于其广泛的库集合,它是Arduino社区中最受欢迎的工具之一,不仅如此,Proteus还可以为Arduino项目设计定制的PCB。就像上一步一样,现在搜索Arduino UNO板,选择Arduino板并单击“确定”以添加到项目中,或者双击以在Proteus项目中添加Arduino。一旦在Proteus中成功创建了一个新项目,现在我们将设计一个用于Proteus中闪烁LED的Arduino电路。

acktomas的博客 1万+

python用networkx画图_Networkx——基本操作与绘图,networkx,及,画图

这几天在用networkx,官方文档是这个,很全也很详细,这里简单记录一些简单的用法和使用过程中的菜鸡看法。这篇主要记一下networkx基本图创建和如何画图。环境Python 3.6.3networkx 2.4matplotlib 2.1.0图的创建这里主要介绍一下networkx中定义的图结构,以及以无向图为例的用法。图的类型networkx中规定了四种图:无向图、有向图、多重无向图、多重有向...

weixin_32602727的博客 7445

【k8s实战】 在离线项目混部 通过kubeflow(tf-operator)部署TensorFlow机器学习任务+prometheus/grafana监控资源使用全过程(最新 图文)

目录在离线混合部署概念最新版kubeflow部署TensorFlow部署二级目录三级目录 在离线混合部署概念 先举一个例子,众所周知的天猫双十一当天的流量非常之大,那么就需要成百上千台服务器构成一个超大集群来提供计算能力,但是双十一过去之后,集群资源就面临着浪费的局面。假设业务分为在线和离线两种模式:在线任务需要资源相对较少,但要求响应时间短;离线任务则不需要对任务进行迅速响应,但是计算量相对较大、占用资源多。那么我们应该怎么在K8S集群上完成这两种业务的部署、并且使得CPU利用率始终维持在一个比较高的水平

Eros1on的博客 1546

Python NetworkX使用2——基础绘图及遍历

Python NetworkX使用2——基础绘图及遍历 文章目录Python NetworkX使用2——基础绘图及遍历1. import package2. Traverse points and corresponding neighbors and edgs3. Simple drawing4. Advanced ploting 1. import package import network...

qq_36540451的博客 3306

SAP VF01开票报错:出口贸易数据不完整

找了半天资料,最后发现是没有维护凭证抬头的数据;由于我不是SD模块顾问,整体流程使用的是原本环境里面的数据,用新建工厂引用,所以也不知道为啥会出发这个贸易业务。正常传到FICO模块,生成会计凭证、获利分析、利润中心及CO凭证。需要维护这三个字段后才能正常转到FI生成会计凭证。VF01开票报错:出口贸易数据不完整。

MaiKouBei的博客 1540

基于 国产USRP B210 的通信+侦测+干扰三合一实验平台,解锁无线攻防全场景!

在当代复杂电磁环境与多样化通信需求并存的背景下,软件定义无线电(SDR)技术正展现出前所未有的系统灵活性与功能可重构性。由两台USRP-LW B210软件无线电设备模拟无线链路通信过程,能够模拟多种无线通信信号传输及图像传输场景,适用于通信协议验证、抗干扰测试及教学实验。,支持"通信-侦测-干扰-优化"的闭环实验流程,为无线通信领域的教学科研与工程应用提供了一套经济高效、功能完备的解决方案。系统可对通信链路信号进行快速、自动化侦测、识别、告警,并支持多种干扰信号生成、模式切换及效果评估功能。

luowave2012的博客 832

(3-1)Networkx绘图模板

1.绘制简单一点的网络图 import networkx as nx G = nx.graph_atlas(100) nx.draw(G,with_labels=True)#with_labels=True节点上标有数字 2.用plt添加更多的修饰元素 import networkx as nx import matplotlib.pyplot as plt G = nx.graph_atlas(100) nx.draw(G,with_labels=True) plt.title('complete

weixin_45014721的博客 856

用UDP协议在dos命令行里模拟一个聊天程序

/* 需求: 在dos命令行里模拟一个聊天程序 有收数据的部分,和发数据的部分,这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发。 */ import java.io.*; import java.net.*; class C

s_x_x的记录 1955

Networkx绘图

#NetworkX提供了基本的绘图功能,但是更强调的是对图的分析,而不是图的可视化。在以后的功能中, #图的可视化可能被移除,或只提供一个附加的包 #著名的绘图工具是:Cytoscape, Gephi, Graphviz and, for LaTeXtypesetting, PGF/TikZ. #使用这些工具,需要将Networx的图转换成这些工具能够读的格式,列如: #Cytoscape

yuexiaomao的博客 1万+

Elasticsearch 8.17.1 JAVA工具类

整理了Elasticsearch8.17最新版的API工具类

weixin_39555954的博客 1125

YOLOv8融合HAttention:激活更多像素的注意力机制科研实践指南

HAttention通过层级化像素激活与融合的设计,为YOLOv8的像素级特征利用能力带来了质的飞跃。从原理理解到代码实现,再到集成调优,每一步都是科研中“解决像素信息遗漏难题”的具体实践。如果你在实验中发现某类细节或大尺度目标的检测仍有不足,可以尝试结合数据增强(如随机裁剪、多尺度训练)来强化模型对像素特征的学习能力。科研的价值在于不断挖掘技术的潜力,希望这份指南能真正帮你在目标检测的像素级特征利用领域找到新的突破点,祝你在科研探索中持续收获创新与成长。

FJN110的博客 106

python复杂网络库networkx:绘图draw

http://blog.youkuaiyun.com/pipisorry/article/details/54291831networkx使用matplotlib绘制函数draw(G[,pos,ax,hold])Draw the graph G with Matplotlib.draw_networkx(G[,pos,arrows,with_labels])Draw the graph G usi

皮皮blog 1万+

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1856

python Networkx绘图1

参考Link: (1)用Python的networkx绘制精美网络图 https://blog.youkuaiyun.com/qq951127336/article/details/54586869 (2)python-plot and networkx绘制网络关系图 https://www.cnblogs.com/rnanprince/p/10816771.html #networkx有四种图 Graph ...

JxufeCarol的博客 621

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

利用NetworkX库进行图论绘图

#-*- coding: utf-8 -*- import matplotlib.pyplot as plt import networkx as nx #导入NetworkX包,为了少打几个字母,将其重命名为nx import random import sys G = nx.Graph() ...

b0207191的博客 658

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Networkx绘图和常用库函数坐标绘图

说明:不是缝合,主要自己做笔记,最近了解的一个过程G = nx.Graph() # 创建无向图G = nx.DiGraph() # 创建有向图G = nx.MultiGraph() # 创建多重无向图G = nx.MultiDigraph() # 创建多重有向图 AttributeError: module ‘networkx’ has no attribute ‘MultiDigraph’G.clear() #清空图常用函数1绘图函数2如果要用无向图,定义图的时候换就可,参考自下面 固定坐标......

lanmy_dl的博客 1816

Networkx基本绘图

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_46070624的博客 541

python Networkx绘图2

参考Link: (3)

JxufeCarol的博客 554

python Networkx绘图3

参考链接: (7)Python 强大的图论和网络研究工具 networkx https://blog.youkuaiyun.com/yuexiaomao/article/details/52425083 (8)图论算法(二):networkx 新建Graph(节点+连边) https://blog.youkuaiyun.com/Canhui_WANG/article/details/80150255 MORE:https...

JxufeCarol的博客 436

【python视图2】基于networkx的10个绘图技巧

networkx在02年5月产生,是用python语言编写的软件包,便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

gongdiwudu的专栏 9097

networkx绘图简易教学

参考networkx 的图形简单操作 如下代码会添加一些节点和边,并标注颜色。注意到颜色的涂色顺序与节点被添加的顺序一致。 import networkx as nx from matplotlib import pyplot as plt def graph_test01(): # 图的生长 g = nx.Graph() # 添加节点 g.add_node(88) # 添加一个节点 g.add_nodes_from([1

duoyasong5907的博客 1096
上一篇: seaborn和torchvision的部分操作
hellostar06
博客等级 码龄5年 404粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellostar06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值