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标签


相关文章
|
22天前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
49 6
|
3月前
|
SQL 数据采集 人工智能
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
167 12
|
3月前
|
数据采集 机器学习/深度学习 算法
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
121 4
|
3月前
|
机器学习/深度学习 人工智能 运维
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
80 8
|
3月前
|
存储 监控 算法
员工行为监控软件中的 Go 语言哈希表算法:理论、实现与分析
当代企业管理体系中,员工行为监控软件已逐步成为维护企业信息安全、提升工作效能的关键工具。这类软件能够实时记录员工操作行为,为企业管理者提供数据驱动的决策依据。其核心支撑技术在于数据结构与算法的精妙运用。本文聚焦于 Go 语言中的哈希表算法,深入探究其在员工行为监控软件中的应用逻辑与实现机制。
106 14
|
4月前
|
自然语言处理 算法 安全
境内深度合成服务算法备案通过名单分析报告
本报告基于《境内深度合成服务算法备案通过名单》,分析了2023年6月至2025年3月公布的10批备案数据,涵盖属地分布、行业应用及产品形式等多个维度。报告显示,深度合成算法主要集中于经济发达地区,如北京、广东、上海等地,涉及教育、医疗、金融、娱乐等多行业。未来趋势显示技术将向多模态融合、行业定制化和安全合规方向发展。建议企业加强技术研发、拓展应用场景、关注政策动态,以在深度合成领域抢占先机。此分析旨在为企业提供参考,助力把握技术发展机遇。
境内深度合成服务算法备案通过名单分析报告
|
4月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
4月前
|
机器学习/深度学习 数据采集 算法
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
基于WOA鲸鱼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB 2022a/2024b实现,采用WOA优化的BiLSTM算法进行序列预测。核心代码包含完整中文注释与操作视频,展示从参数优化到模型训练、预测的全流程。BiLSTM通过前向与后向LSTM结合,有效捕捉序列前后文信息,解决传统RNN梯度消失问题。WOA优化超参数(如学习率、隐藏层神经元数),提升模型性能,避免局部最优解。附有运行效果图预览,最终输出预测值与实际值对比,RMSE评估精度。适合研究时序数据分析与深度学习优化的开发者参考。
|
21天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB2022a/2024b开发,结合粒子群优化(PSO)算法与双向长短期记忆网络(BiLSTM),用于优化序列预测任务中的模型参数。核心代码包含详细中文注释及操作视频,涵盖遗传算法优化过程、BiLSTM网络构建、训练及预测分析。通过PSO优化BiLSTM的超参数(如学习率、隐藏层神经元数等),显著提升模型捕捉长期依赖关系和上下文信息的能力,适用于气象、交通流量等场景。附有运行效果图预览,展示适应度值、RMSE变化及预测结果对比,验证方法有效性。