R马尔可夫链包,是否可以设置节点的坐标和大小?

标签 r plot chain markov

我正在使用 R 解决一些生物学行为问题,我有一个转换矩阵,我想以某种方式绘制它。

我正在使用 markovchain 包,它使可视化变得容易。

这是一个测试代码,它是输出。

> a<-array(0.25,dim = c(4,4))
> markov<-new("markovchain",transitionMatrix=a,states=c("a","b","c","d"), name="test")
> markov
test 
 A  4 - dimensional discrete Markov Chain defined by the following states: 
 a, b, c, d 
 The transition matrix  (by rows)  is defined as follows: 
 a    b    c    d
 a 0.25 0.25 0.25 0.25
 b 0.25 0.25 0.25 0.25
 c 0.25 0.25 0.25 0.25
 d 0.25 0.25 0.25 0.25

 > plot(markov)

Plot Output

问题是,我想设置图形节点的坐标以将它们放置在 2D 网格或类似的东西中,还想设置节点的大小。 我知道这个包适用于 S4,但我不是很熟悉它,也不知道是否有任何对我有用的参数。 有帮助吗?

最佳答案

你可以这样做:

layout <- matrix(c(0,0,0,1,1,1,1,0), ncol = 2, byrow = TRUE)

     # [,1] [,2]
# [1,]    0    0
# [2,]    0    1
# [3,]    1    1
# [4,]    1    0

plot(markov, vertex.size = 25, layout = layout)

布局 是一个两列矩阵。每行包含每个节点的坐标。使用 vertex.size,您可以调整节点的大小。请注意,markovchain 包受益于 igraph 包来做到这一点。

enter image description here

有了这些布局

layout <- matrix(c(4,-2,7,2,8,8,8,-4), ncol = 2, byrow = TRUE)
     # [,1] [,2]
# [1,]    4   -2
# [2,]    7    2
# [3,]    8    8
# [4,]    8   -4

plot(markov, vertex.size = 25, layout = layout)

你会有这个:

enter image description here

关于R马尔可夫链包,是否可以设置节点的坐标和大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205378/

相关文章:

openssl - 我可以在没有私钥的情况下将多个证书合并为一个吗?

r - p.adjust 尊重整个数据框

r - 将日期时间列拆分为日期和时间变量

r - 使用 ggmaps 创建黑白 map

c++ - 使用管道链接 Hadoop MapReduce (C++)

android - Jetpack 撰写,约束布局,其中一项垂直滚动

c++ - 混合 Rcpp 模块和 Rcpp::export

r - 根据其他列中的条件更新一个列中的值

python-2.7 - 如何使用python在python中绘制多索引数据框?

r - 如何将两个 sjp.likert (来自 sjPlot 包)生成的图合并到一个图中?