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

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

时间:2024-02-01 12:33:42浏览次数:35  
标签:标签 element 网络图 ggplot2 igraph blank 可视化 节点 axis

原文链接: http://tecdat.cn/?p=23836

原文出处:拓端数据部落公众号

我们使用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标签


最受欢迎的见解

1.R语言动态图可视化:如何、创建具有精美动画的图

2.R语言生存分析可视化分析

3.Python数据可视化-seaborn Iris鸢尾花数据

4.r语言对布丰投针(蒲丰投针)实验进行模拟和动态

5.R语言生存分析数据分析可视化案例

6.r语言数据可视化分析案例:探索brfss数据数据分析

7.R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

9.python主题LDA建模和t-SNE可视化

标签:标签,element,网络图,ggplot2,igraph,blank,可视化,节点,axis
From: https://www.cnblogs.com/tecdat/p/18000955

相关文章

  • Android——Glide加载网络图片
    Glide是谷歌开发的图片加载框架,也是Android官方推荐的图片加载框架。  使用Glide之前需要先导入glide库:implementation'com.github.bumptech.glide:glide:4.13.0‘  Glide的用法很简单,只需一行代码即可将网络图片加载到图像视图界面:Glide.with(活动实例).load(网址字符......
  • WPF显示网络图片的几种方法
    1、利用数据流1Imageimg;2byte[]btyarray=GetImageFromResponse(imageUrl);34//字节数据转流5MemoryStreamms=newMemoryStream(btyarray);67//重点:设置Image控件的Source为流格式的图片数据8img.Source=BitmapFrame.Create(ms,BitmapCrea......
  • 解决Ubuntu系统在Vmware中重启后丢失网络图标和服务的问题
    问题如上。解决方法:先关掉NetworkManager:sudoserviceNetworkManagerstop用gedit打开NetworkManager.statesudogedit/var/lib/NetworkManager/NetworkManager.state改成如下:重启NetworkManager:sudoserviceNetworkManagerrestart完成注意:不同版本的U......
  • ggplot2 绘图 x轴标签顺序
     001、测试数据及绘图x<-c("B","A","D","C","E")##测试数据顺序y<-c(5,6,7,8,9)df<-data.frame(x=x,y=y)dflibrary("ggplot2")ggplot(data=df,aes(x=x,y=y))......
  • ggplot2 中 绘图调整刻度线标签的长度
     001、基础绘图library(ggplot2)p<-ggplot(faithful,aes(x=eruptions,y=waiting))+geom_point()p##基础绘图 02、调整刻度线标签的长度p+theme(axis.ticks.length=unit(.85,"cm"......
  • ggplot2 中绘图清空 x轴或者y轴的title
     001、基础绘图library(ggplot2)p<-ggplot(faithful,aes(x=eruptions,y=waiting))+geom_point()p 02、清空x轴titlep+theme(axis.title.x=element_blank())##清空x轴title 。 ......
  • Vue中网络图片懒加载工具
    在滑动列表视图中如果有网络图片需要加载直接给imag标签赋值src,会造成没有显示的item中图片也直接加载,势必浪费网络资源。创建一个插件,让列表中的item出显的时候在加载图片从而减少网络请求。具体方法就是给img标签添加一个新的属性暂时先保存对应的url,当item滑动出现到一定值时......
  • ggplot ggplot2 画图
     折线图-ggplot2 http://blog.163.com/yugao1986@126/blog/static/6922850820131161531421/http://blog.sina.com.cn/s/blog_7cffd1400101f50v.html《RGraphicsCookbook-ByWinstonChang》#======================折线图library(ggplot2) #作图library(gcookbook) #案例......
  • vue 网络图片访问不到,403的解决办法(详解)
    index.html中添加 <metaname="referrer"content="no-referrer"/>原因:防盗链的机制:通过页面的referrer信息,判断访问者来源,是否本站点,然后对图片等请求作出相应no-referrer:1、整个Referer首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进......
  • 关于双代号网络图里的虚线
    定义:双代号网络图中,虚箭线代表不占用时间和资源的虚拟活动。怎么用:百度了会儿看的一脸懵逼,又看了半天例题,终于看懂这虚线是怎么用的了,记录一下。大概是在A-BC-D的情况下,因为一条线只能对应一个活动,且两个编号之间只能连一条实线,所以就一个直接用实线,另一个用实线接虚箭线辅助作......