IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【R语言实例】igraph — 网络分析与可视化包(1) -> 正文阅读

[Python知识库]【R语言实例】igraph — 网络分析与可视化包(1)

作者简介: 本文作者系大学统计学专业教师,多年从事统计学的教学科研工作,在随机过程、统计推断、机器学习领域有深厚的理论积累与应用实践。

igraph是一套用于网络分析与可视化的r包,它以高效、便捷、使用简单的特点在网络分析研究中广泛采用。igraph可以在R环境下免费下载安装,目前也有Python实现的igraph. 本文将介绍如何使用igraph包进行基础的网络分析与可视化。

1. igraph 网络

首先,清除R环境里的所有对象后,加载igraph包。

# Remove all the objects we created so far.
rm(list = ls())
library(igraph) 

1.1 产生一个网络

我们产生一个有3个结点的无向图。它的结点用1, 2, 3表示,边分别是1–>2, 2–>3, 3–>1.

g1 <- graph( edges=c(1,2, 2,3, 3, 1), n=3, directed=F ) 
# A simple plot of the network
plot(g1)

在这里插入图片描述
g1是一个igraph对象。现在,我们生成一个10结点的有向图。

g2 <- graph( edges=c(1,2, 2,3, 3, 1), n=10 )
plot(g2) 

在这里插入图片描述

g3 <- graph( c("John", "Jim", "Jim", "Jill", "Jill", "John")) # named vertices
# When the edge list has vertex names, the number of nodes is not needed
plot(g3)

在这里插入图片描述

g4 <- graph( c("John", "Jim", "Jim", "Jack", "Jim", "Jack", "John", "John"), 
             isolates=c("Jesse", "Janis", "Jennifer", "Justin") )  
# In named graphs we can specify isolates by providing a list of their names.
plot(g4, edge.arrow.size=.5, vertex.color="gold", vertex.size=15, 
     vertex.frame.color="gray", vertex.label.color="black", 
     vertex.label.cex=0.8, vertex.label.dist=2, edge.curved=0.2) 

在这里插入图片描述
下面的代码生成不同风格的图。

plot(graph_from_literal(a---b, b---c)) # the number of dashes doesn't matter

在这里插入图片描述

plot(graph_from_literal(a--+b, b+--c))

在这里插入图片描述

plot(graph_from_literal(a+-+b, b+-+c)) 

在这里插入图片描述

plot(graph_from_literal(a:b:c---c:d:e))

在这里插入图片描述

gl <- graph_from_literal(a-b-c-d-e-f, a-g-h-b, h-e:f:i, j)
plot(gl)

在这里插入图片描述

1.2 边、结点与网络属性

显示边与结点

E(g4) # The edges of the object

+ 4/4 edges (vertex names):
[1] John->Jim Jim ->Jack Jim ->Jack John->John

V(g4) # The vertices of the object

+ 7/7 vertices, named:
[1] John Jim Jack Jesse Janis Jennifer Justin

显示网络矩阵

g4[]

在这里插入图片描述

g4[1,]

在这里插入图片描述

V(g4)$name # automatically generated when we created the network.

在这里插入图片描述

1.3 图与图模型

空图

eg <- make_empty_graph(40)
plot(eg, vertex.size=10, vertex.label=NA)

在这里插入图片描述

完全图

fg <- make_full_graph(40)
plot(fg, vertex.size=10, vertex.label=NA)

在这里插入图片描述

星型图

st <- make_star(40)
plot(st, vertex.size=10, vertex.label=NA) 

在这里插入图片描述

树型图

tr <- make_tree(40, children = 3, mode = "undirected")
plot(tr, vertex.size=10, vertex.label=NA) 

在这里插入图片描述

环形图

rn <- make_ring(40)
plot(rn, vertex.size=10, vertex.label=NA)

在这里插入图片描述

Erdos-Renyi 随机图

# ‘n’ is number of nodes, ‘m’ is the number of edges
er <- sample_gnm(n=100, m=40) 
plot(er, vertex.size=6, vertex.label=NA)  

Watts-Strogatz small-world model

# Creates a lattice (with dim dimensions and size nodes across dimension) and rewires edges 
# randomly with probability p. The neighborhood in which edges are connected is nei. 
# You can allow loops and multiple edges.
sw <- sample_smallworld(dim=2, size=10, nei=1, p=0.1)
plot(sw, vertex.size=6, vertex.label=NA, layout=layout_in_circle)

在这里插入图片描述

Rewiring a graph

each_edge() 是一个rewiring方法,它以概率prob均匀地随机改变边的终端,即,重新定义边。

rn.rewired <- rewire(rn, each_edge(prob=0.1))
plot(rn.rewired, vertex.size=10, vertex.label=NA)

在这里插入图片描述

未完待续

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:17:41  更:2022-05-27 17:19:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:27:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码