图与网络模型及方法_E—R模型的题

图与网络模型及方法_E—R模型的题从直观上看,所谓图就是由点与边组成的图形,如下图所示:在igraph中可用graph函数构件图,其使用格式为:其中:如图所示,把左边的这个图变成右边:参数graph为作图的对象,mode为字符串

图的定义

从直观上看,所谓图就是由点与边组成的图形,如下图所示:
在这里插入图片描述

定义:图G是一个偶对(V,E),其中V是一个非空集合,其元素u属于V称为图的定点;E是由V中的点构成的点对,E的元素e称为图的变或弧。若e是无序对,则称G为无向图,否则则成为有向图。若e=(u,v),则称u为e的起点,v为e的终点。称去掉有向图的方向得到的图为基础图

构建图中的R函数

在igraph中可用graph函数构件图,其使用格式为:

make_graph(
  edges,
  ...,
  n = max(edges),
  isolates = NULL,
  directed = TRUE,
  dir = directed,
  simplify = TRUE
)

make_directed_graph(edges, n = max(edges))

make_undirected_graph(edges, n = max(edges))

directed_graph(...)

undirected_graph(...)
Arguments

其中:

  • edges为由顶点符号构成的向量,表示图的边,其中奇数点表示边的起点,偶数点表示终点
  • n 为整数,默认值为最大边数
  • directed为逻辑变量,表示是否为有向图
    graph函数返回值为图的对象,如果将图可视化,需要用到plot函数
    比如我们这两幅图:
#install.packages("igraph")
library(igraph)
e=c(1,2,2,2,2,4,1,4,3,1,3,4,4,3,4,5)
par(mfrow=c(1,2))#把图形分割为两部分
enames <- paste("e",1:8,sep="")
g1 <- graph(e,directed = F)
g2 <- graph(e)
plot(g1,layout=layout.circle,edge.label=enames)
plot(g2,layout=layout.circle,edge.label=enames)

在这里插入图片描述

  • edge.label=enames表示绘图时表明边的标号
  • layout=layout.circle表明图中顶点的布局类似于一个圆

把无向图变为有向图

如图所示,把左边的这个图变成右边:

as.directed(graph,mode=c("mutual","arbitrary","each","random"))
  • 参数graph为作图的对象,mode为字符串。取“mutual”(默认值)表示为木条边增加两个方向,取“arbitrary”表示为每条边任意添加一个方向
library(tidyverse)
plot(g1,layout=layout.circle,edge.label=enames)#无向图
as.directed(g1,mode="mutual") %>% plot(layout=layout.circle,edge.label=enames)

在这里插入图片描述

构建空图

graph.empty函数

graph.empty(n=0,directed = T) %>% plot()

结果如下:
在这里插入图片描述

在图上添加边或者点

  • add.edges(): 添加边
  • add.vertices(): 添加点
    例题
    使用igraph的函数构建图,图G共有10个顶点,顶点用小写英文字母表示,共20条边,边的连接方式如下:
    1,2,1,3,2,3,3,5,3,4,3,6,3,7,4,5,4,9,5,1,5,6,7,1,7,8,
    8,2,8,5,8,9,9,5,9,10,10,6
E <- c(1,2,1,3,2,3,3,5,3,4,3,6,3,7,4,5,4,9,5,1,5,6,7,1,7,8,
       8,2,8,5,8,9,9,5,9,10,10,6)
g3 <- graph.empty()+vertices(letters[1:10])
g3 <-g3+ edges(E) 
plot(g3,layout=layout.circle)

在这里插入图片描述

简单图与完全图

用到graph.fromula函数
graph.full()函数
graph.ring()函数

graph.formula(A-+B-+C) %>% plot()
graph.formula(A+-B-+C) %>% plot()
graph.formula(A+-B--C) %>% plot()

在这里插入图片描述
在这里插入图片描述

graph.lattice(c(2,2,2)) %>% plot()
graph.full(5) %>% plot()
graph.ring(10) %>% plot()

在这里插入图片描述

今天的文章图与网络模型及方法_E—R模型的题分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88193.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注