【网络图】R语言画图,超炫酷动态交互式图结构

article/2025/10/19 11:05:04

网络图简介

网络图表示着一群事物之间的关系,如果两个事物有关系,则对应结点之间有边。

实战

官方实例

所需的包

library(tidyverse)
library(viridis)
library(patchwork)
library(hrbrthemes)
# install.packages("ggraph")
library(ggraph)
library(igraph)
# install.packages("networkD3")
library(networkD3)

数据含义

这个数据表示如果两个人至少在同一出版物上列出过一次,则通过链接将他们联系起来。

数据读取

# Load researcher data
dataUU <- read.table("https://raw.githubusercontent.com/holtzy/data_to_viz/master/Example_dataset/13_AdjacencyUndirectedUnweighted.csv", header=TRUE)

这个数据的特点就是:

  • 第一列是结点的名字;
  • 如果两个结点右边,则对应矩阵里面的值为1,反之为NA

实例1数据

数据处理

这个数据处理都是通用的,只要将我们的数据转换成dataUU的格式即可。

# Transform the adjacency matrix in a long format
connect <- dataUU %>% gather(key="to", value="value", -1) %>%na.omit()# Number of connection per person
c( as.character(connect$from), as.character(connect$to)) %>%as.tibble() %>%group_by(value) %>%summarize(n=n()) -> coauth
colnames(coauth) <- c("name", "n")# NetworkD3 format
graph=simpleNetwork(connect)

画图

# Plot
simpleNetwork(connect,     Source = 1,                 # column number of sourceTarget = 2,                 # column number of targetheight = 880,               # height of frame area in pixelswidth = 1980,linkDistance = 10,         # distance between node. Increase this value to have more space between nodescharge = -4,              # numeric value indicating either the strength of the node repulsion (negative value) or attraction (positive value)fontSize = 5,              # size of the node namesfontFamily = "serif",       # font og node nameslinkColour = "#666",        # colour of edges, MUST be a common colour for the whole graphnodeColour = "#69b3a2",     # colour of nodes, MUST be a common colour for the whole graphopacity = 0.9,              # opacity of nodes. 0=transparent. 1=no transparencyzoom = T                    # Can you zoom on the figure?
)

R语言画网络图结构

自己的例子

数据

名字张三李四王五赵六冯七蒋八
张三1111
李四11
王五1111
赵六1111
冯七111
蒋八111
数据读取和处理都和前面一样。
# Libraries
library(tidyverse)
library(viridis)
library(patchwork)
library(hrbrthemes)
# install.packages("ggraph")
library(ggraph)
library(igraph)
# install.packages("networkD3")
library(networkD3)
# dataUU <- read.csv("D:/每日一图/关系网 - 副本.CSV")
dataUU <- read.csv("D:/每日一图/关系网.CSV")# Transform the adjacency matrix in a long format
connect <- dataUU %>% gather(key="to", value="value", -1) %>%na.omit()# Number of connection per person
c( as.character(connect$from), as.character(connect$to)) %>%as.tibble() %>%group_by(value) %>%summarize(n=n()) -> coauth
colnames(coauth) <- c("name", "n")# NetworkD3 format
graph=simpleNetwork(connect)

画图

画图的代码稍微改了一下linkDistancefontSize参数,分别把节点间距离变长,字体改一下

# Plot
simpleNetwork(connect,     Source = 1,                 # column number of sourceTarget = 2,                 # column number of target# height = 80,               # height of frame area in pixels# width = 180,linkDistance = 38,         # distance between node. Increase this value to have more space between nodescharge = -4,              # numeric value indicating either the strength of the node repulsion (negative value) or attraction (positive value)fontSize = 5,              # size of the node namesfontFamily = "serif",       # font og node nameslinkColour = "#666",        # colour of edges, MUST be a common colour for the whole graphnodeColour = "#69b3a2",     # colour of nodes, MUST be a common colour for the whole graphopacity = 0.9,              # opacity of nodes. 0=transparent. 1=no transparencyzoom = T                    # Can you zoom on the figure?
)

最后得到下图
在这里插入图片描述

后记

网络在生信里面占据了很大作用,之后构建的网络可以通过这个方法可视化。

平常的数据,第一列一般不是结点名称,结点名称一般在行名上,这个时候我们可以用下面的代码进行处理一下,就变成我们想要的形式了

dataUU <- data.frame(rownames(dataUU),dataUU)

http://chatgpt.dhexx.cn/article/gxSfhBHr.shtml

相关文章

umlの交互图

前面介绍了uml的很多种图&#xff0c;下面挑出几个联系比较紧密的进行对比和联系。用例图和交互图都是表示动态行为&#xff0c;只是前者表示系统外部对象&#xff08;参与者&#xff09;与系统这两个大对象之间的互动&#xff0c;而后者则侧重在表示系统内部一群小对象之间的互…

UML交互图(时序图、顺序图、序列图是一样的、协作图)

时序图、顺序图、序列图是一样的&#xff0c;可能是因为英文翻译的问题&#xff0c;他们对应的都是Sequence Diagram&#xff0c;而另一个Timing Diagram可能翻译常时间图更合适一点点。 Sequence Diagram描述了多个对象如何协作完成一个用例的过程&#xff1b;而Timing Sequen…

【UML】交互图(时序图、协作图)

时序图 内容 描述了对象之间传递消息的时间顺序用来表示用例的行为顺序是强调消息时间顺序的交互图描述类系统中类和类之间的交互&#xff0c;将这些交互建模成消息交换 元素 1.对象 对象代表时序图中的对象在交互过程中所扮演的角色 2.生命线 生命线是一条虚线&#…

交互概览图

一&#xff1a;定义 1&#xff0c;交互概览图是交互图与活动图的混合物&#xff0c;可以把交互概览图理解为细化的活动图&#xff0c;在其中的活动都通过一些小型的顺序图来表示&#xff1b;也可以将其理解为利用标明控制流的活动图分解过的顺序图。 2&#xff0c;交互概览图…

UML交互图

顺序图和协作图统称交互图&#xff0c;用来描述系统中多个对象之间的相互关系及对象间消息的传递&#xff0c;用于对系统中多个对象的相互作用的过程进行建模。 在面向对象分析过程中&#xff0c;可以使用顺序图来描述完成一个用例的过程&#xff0c;使用协作图来分析系统中的对…

UML之行为图(活动图、状态图、交互图)

UML的行为图是用来描述系统的动态模型和对象之间的交互关系&#xff0c;包括三种&#xff1a;活动图、状态图、交互图。 下面对这三种图进行介绍&#xff1a; 一、活动图&#xff1a; 1、定义&#xff1a;用来描述满足用例要求所要进行的活动以及活动间的约束关系&#xff0c;…

UML——交互图(顺序图与协作图)

目录 交互图 顺序图 协作图 顺序图与协作图之间的关系 交互图 用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。 交互图主要用来描述协作的动态行为方面 交互图有顺序图和协作图两种形式 ——顺序图&#xff1a;强调消息的时间顺序 ——协作…

UML交互图(顺序图和交互图)

一、概念 交互图描述对象之间的动态合作关系以及合作过程中的行为次序。交互图常常用来描述一个用例的行为&#xff0c;显示该用例中所涉及的对象以及这些对象之间的消息传递情况&#xff0c;即一个用例的实现过程。 交互图有顺序图和协作图两种形式。 时序图中描述对象按…

软件工程 第五章:交互图

第五章&#xff1a;交互图 概述 动态模型用来描述系统的动态行为&#xff0c;分为状态模型和交互模型。交互图描述对象间的动态合作关系及合作过程中的行为次序。常用来描述一个用例的行为&#xff0c;显示该用例中所涉及的对象及它们间的消息传递情况。交互图有序列图和协作…

UML系列文章(19)基本行为---交互图

顺序图和通信图&#xff08;均是交互图&#xff09;是UML中用于对系统的动态方面进行建模的5种图中的两种。交互图表现的是一个交互&#xff0c;由一组对象和它们之间的关系组成&#xff0c;包括它们之间可能传递的消息。顺序图是强调消息时间顺序的交互图&#xff0c;通信图是…

UML-----交互图(顺序图和合作图)

交互图 交互图是用来描述系统中的对象是如何进行相互作用的。也就是一组对象是如何进行信息传递的。主要描述协作的动态行为方面。 交互包括两个方面&#xff1a;1.强调消息的时间顺序。2.强调发送和接收信息的对象的结构组织 因此引出了两个图 顺序图&#…

UML九种图之交互图

序列图又叫顺序图&#xff0c;是交互图的一种&#xff0c;交互图包括顺序图和合作图。那么什么是交互图呢&#xff1f; 交互图 u 定义 交互图是用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。 交互主要用于描述协作的动态行为方面。 当对交互…

UML---交互图(顺序图和协作图)

交互图 交互图用来描述对象之间的交互关系&#xff0c;包括顺序图和协作图 交互图用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。 顺序图 1.概念&#xff1a;描述对象之间的交互顺序&#xff0c;着重体现对象间消息传递的时间顺序&#xff0…

【UML】——交互图

一、交互图 1、什么是交互图 交互图用来描述系统中的对象是如何进行相互作用的&#xff0c;即一组对象是如何进行消息传递的 交互图主要用于描述协作的动态行为方面 2、两种方式描述 强调消息的时间顺序 强调发送和接受消息的对象的结构组织 3、交互图包括 时序图&…

【环境搭建】gflags和glog的安装

【环境搭建】gflags和glog的安装 在Ubuntu16.04上安装gflags什么是gflags安装gflags 在Ubuntu16.04上安装glog什么是glog安装glog使用glog 结语 在Ubuntu16.04上安装gflags 什么是gflags gflags用于处理命令行参数 安装gflags 用apt下载git和cmake sudo apt-get install g…

Windbg的gflags.exe -- Attach调试利器

有没有碰到过程序启动就因为异常直接crash&#xff1f;有没有碰到程序启动之后什么反应也没有&#xff1f;有没有碰到过程序启动之后去触发另一个进程失败&#xff1f;有没有碰到别人的程序调用了你的代码&#xff0c;出现问题以后&#xff0c;让你来调查&#xff0c;而你只有你…

gflags的交叉编译

gflags版本&#xff1a;gflags 2.2.2 目录 编译 动态库的编译 cmake 设置交叉编译器是重点。 lbwDESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACEgflags -DCMAKE_CXX_FLAGS-fPIC -DBUILD_SHARED_LIBSON -DCMAKE_C_COMPILERaarch64-linux-gnu-…

【Ubuntu 20.04】 安装使用 Gflags、Glog、JSON、yaml 教程

Gflags 谷歌命令行解析工具gflags详解 https://zhuanlan.zhihu.com/p/95889124Glog //安装 sudo apt-get install libgoogle-glog-dev //卸载 sudo apt-get remove libgoogle-glog-devGoogle开源库之Glog库详解 https://zhuanlan.zhihu.com/p/26025722JSON Linux C/C下使用…

Ubuntu20.04安装g3log、glog和gflags

建议最好先安装最新版本的cmake&#xff0c;在进行以下安装 cmake安装教程 1.安装gflags 方法一、首先打开终端 ||git clone https://github.com/gflags/gflags.git ||cd gflags ||mkdir build && cd build ||cmake .. -DGFLAGS_NAMESPACEgoogle -DCMAKE_CXX_FLAGS-f…

Gflags learning notes

简介 gflags是谷歌开发的一个命令行标记库&#xff0c;区别于其他命令行标记库&#xff0c;它允许标记定义出现在源文件各处&#xff0c;而不是限定在一个源文件&#xff08;如main()&#xff09;中。这意味着一个源代码文件定义和使用对该文件有意义的标志&#xff0c;任何链接…