下载页面提示说:这个包依赖于grid,graph,Rgraphviz,得先下载它们再下graphviz,grid好像是系统自带的,下后面两个就可以了
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("graph")
BiocManager::install("Rgraphviz")
我是手动下的,不知道直接install(“gridGraphviz”)行不行,你们可以试试
c1.来到R包的下载地址:
https://cran.r-project.org/web/packages/available_packages_by_name.html#available-packages-G
c2:下载 gridGraphviz_0.3.tar.gz
c3:打开package面板,点击install按钮
c4:点击browse,找到下载的位置选择文件,再点击install
graphviz.plot(x, highlight = NULL, groups, layout = "dot",
shape = "circle", main = NULL, sub = NULL, render = TRUE)
参数 | 解释 |
---|---|
x | 需要画的贝叶斯网络,需要传入bn类型或者bn.fit类型的 |
highlight | 需要突出显示的东西,需要传入list类型的 |
groups | 把一些节点作为一组,让他们靠近一点 |
layout | 布局,有dot, neato, twopi, circo and fdp |
shape | 贝叶斯网络中的点的形状,有圆形,椭圆形,长方形 |
main | 这个图的标题,显示在图正上方 |
sub | 这个图的副标题,显示在图下方 |
render | x是否返回graph对象(会显示到plot面板),为True返回,False不返回,默认是TRUE |
例子0:最朴素的效果
graphviz.plot(dag)
graphviz.plot(dag, highlight = list(nodes =c("A","B"),# 需要突出显示的点
arcs =c("A", "B","C", "D","F","E"),# 需要突出显示的边
col = c("#6f88fc"),# 需要突出显示的点边缘和边的颜色
textCol = c("yellow"),# 需要突出显示的点和边的标签颜色
fill = c("#45e3ff"),# 需要突出显示的点的disease
lwd = 5,# 需要突出显示的边的宽度
lty = 3 # 需要突出显示的边的线条类型
),
groups = list(c("A","B"),c("C","D"),c("E","F")),# 需要抱团的集合
layout = "dot",# 布局
shape ="rectangle")# 点的形状
graphviz.plot(dag, highlight = list(nodes =c("A","B"),
arcs =c("A", "B","C", "D","F","E"),
col = c("#6f88fc"),
textCol = c("yellow"),
fill = c("#45e3ff"),
lwd = 5,
lty = 3
),
groups = list(c("A","B"),c("C","D"),c("E","F")),
layout = "dot",
shape ="circle",
main = "learning.test",# 标题
sub = "bayes network", # 副标题
render = TRUE # 是否返回对象,TRUE就完事了
)
至少含有以下两种元素:
元素 | 功能 | 类型 | 示例 |
---|---|---|---|
nodes(点) | 让点突出显示 | 字符向量 | highlight = list(nodes =c(A,B)) |
arcs(边) | 让突出显示 | 字符向量,按照from,to,…from,to的顺序 | highlight = list(arcs =c(“A”, “B”,“C”, “D”,“F”,“E”)) |
例如:
data("learning.test")
dag = model2network("[A][C][F][B|A][D|A:C][E|B:F]")
graphviz.plot(dag, highlight = list(nodes =c("A","B"),
arcs =c("A", "B","C", "D","F","E")
))
元素 | 功能 | 类型 | 示例 |
---|---|---|---|
col(颜色) | 设置节点边缘和边的颜色,默认是red | 字符串或者数字 | col = c(“purple”)或者col = c("#6f88fc"), |
textCol(文本颜色) | 设置节点和边的标签颜色,默认是red | 字符串或者数字 | textCol = c(“yellow”) |
fill(填充) | 设置节点的底色 | 字符串或者数字 | fill = c("#45e3ff") |
lwd | 设置边的宽度 | 字符串或者数字 | lwd = 5 |
lty | 设置边的线条种类 | 数字,0,1,2,3,4,5,6分别代表 空白, 实线, “虚线”, 点状线, “虚线点线结合”, 长点线 和双点线 | lty = 3 |
例如:
list(nodes =c(“A”,“B”),# 需要突出显示的点
arcs =c(“A”, “B”,“C”, “D”,“F”,“E”),# 需要突出显示的边
col = c("#6f88fc"),# 需要突出显示的点边缘和边的颜色
textCol = c(“yellow”),# 需要突出显示的点和边的标签颜色
fill = c("#45e3ff"),# 需要突出显示的点的disease
lwd = 5,# 需要突出显示的边的宽度
lty = 3 # 需要突出显示的边的线条类型
)
graphviz.plot(dag, highlight = list(nodes =c("A","B"),# 需要突出显示的点
arcs =c("A", "B","C", "D","F","E"),# 需要突出显示的边
col = c("#6f88fc"),# 需要突出显示的点边缘和边的颜色
textCol = c("yellow"),# 需要突出显示的点和边的标签颜色
fill = c("#45e3ff"),# 需要突出显示的点的disease
lwd = 5,# 需要突出显示的边的宽度
lty = 3 # 需要突出显示的边的线条类型
)
))
https://www.bnlearn.com/documentation/man/graphviz.plot.html