R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度

简介: R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度

我们使用R中的igraph包,产生了网络的图形。

但是很难将这些图表放到演讲和文章中,因为图表很难根据需要定制。使用igraph中的绘图功能可以得到你想要的结果,但用ggplot对工作更有帮助。所以本文探索了一种在ggplot中创建igraph绘图的方法。

igraph图

首先,我带入数据,这是一个物种相对丰度的矩阵。列是物种,每行是一个观测值。下面是数据的浏览

head(data.wide)

加载igraph库并运行生成网络的前几个步骤

library(igraph)
all <- bipartite.projection(inc)
绘制这两幅图产生的图形还可以,但并不美观。
op <- par(mfrow = c(1, 2))
plot(obs, layout = layout.fruchterman.reingold, 
edge.color = "black")
par(op)

在ggplot中创建图形

首先让我们提取数据,产生左边的网络基本图。GGPLOT需要数据为数据框,所以提取数据并将其转换为数据框


species <- colnames(wide2)  ## 添加物种代码

df  ## 显示每个节点的x(V1)和y(V2)坐标。

现在我们有了图中所有节点的坐标,我们可以在ggplot中绘制了

library(ggplot2)
ggplot() +
    geom_point( color="black") + # 在节点周围添加一个黑色的边框
     geom_text( label=species ) + # 添加节点的标签

现在我们有了正确的节点,画出节点之间的连接。

get(obs)  # 使用函数获得边信息

df\[match(from, species)\] # 匹配之前连接的节点数据框架中的 from 位置。
gto <- all\[match(to, specie)\] # 匹配之前连接的节点数据框中的to位置

然后绘制

ggplot() +
    geom_point(color="black") + # 在节点周围添加一个黑色的边
    geom_text(label=species)) + # 添加节点的标签

让我们弄乱主题,删除网格线和轴标签等。

ggplot() +
    geom_point(color="black") + # 在节点周围添加一个黑色的边
    geom_text(label=species)) + # 添加节点的标签
      axis.text.x = element_blank(), # 移除x轴文字
      axis.text.y = element_blank(), #删除y轴文字
      axis.ticks = element_blank(), # 删除轴的刻度线
      axis.title.x = element_blank(), # 删除X轴标签
      axis.title.y = element_blank(), # 删除y轴标签
      panel.grid.major = element_blank(), #移除主要网格的标签
      panel.grid.minor = element_blank(), #删除minor-grid标签

如果我们想把社区检测算法中的一些元素纳入右边的图中。我们可以把一个组中的元素变成红色,另一个组中的元素变成蓝色。组内的连接是一条实线,组间的连接是一条虚线。

data.frame(sp = names, g=membership) #创建一个物种和组成员的数据框架
 g\[match( from, sp )\] # 在g数据框中为from和to节点匹配组成员资格

grp <-  group\[match( species, species)\] # 将组类型添加到节点数据框中。
ggplot() +
    geom_segment(type=as.factor(type)),color="black") + # 添加线
    geom_point(color="black") + # 在节点周围添加一个黑色的边界。
    geom_text(label=species)) + # 添加节点的标签
    theme_bw()+ # 使用ggplot的黑白主题
    theme(
      axis.text.x = element_blank(), # 移除x轴文字
      axis.text.y = element_blank(), #删除y轴文字
      axis.ticks = element_blank(), # 删除轴的刻度线
      axis.title.x = element_blank(), # 删除X轴标签
      axis.title.y = element_blank(), # 删除y轴标签
      panel.grid.major = element_blank(), #移除主要网格的标签
      panel.grid.minor = element_blank(), #删除minor-grid标签


相关文章
|
10天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
30 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
11天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
24 1
|
20天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
23天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
67 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
20天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
19 2
|
7天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
6天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。