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)

Вы бы это

введите описание изображения здесь

Другие вопросы по тегам