R Марковская цепочка пакетов, можно ли задать координаты и размеры узлов?
Я работаю с 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)
Дело в том, что я хотел бы установить координаты узлов графа, чтобы поместить их в двумерную сетку или что-то в этом роде, а также установить размер узлов. Я знаю, что этот пакет работает с S4
, но я не очень знаком с этим и не знаю, есть ли какие-либо аргументы, которые были бы полезны для меня. Любая помощь?
1 ответ
Вы могли бы сделать это:
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)
layout
это матрица из двух столбцов. Каждая строка содержит координаты на узел. С vertex.size
Вы можете настроить размер узлов. Обратите внимание, что markovchain
пакет преимуществ от igraph
пакет для этого.
С этими раскладками
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)
Вы бы это