Тонкая настройка цепи Маркова

У меня есть следующая цепь Маркова:

pre<-cbind(c(rep("rain",100),rep("sun",100),rep("rain",100)))
post<-cbind(c(rep("rain",50),rep("sun",70),rep("rain",100),rep("sun",80)))
df<-cbind(pre,post)
df<-as.data.frame(df)
colnames(df)<-c("pre","post")

states<-c("rain","sun")

probsCase<-function(i,j){
sum(as.character(df$pre)==states[i] & as.character(df$post)==states[j])/sum(as.character(df$pre)==states[i])
}

transitionMatrix<-outer(1:2,1:2,Vectorize(probsCase))
colnames(transitionMatrix)<-states
rownames(transitionMatrix)<-states

library(diagram)
plotmat(transitionMatrix,relsize=0.75)

что приводит к следующему графику:

Как я могу повернуть его на 90 градусов по часовой стрелке и отрегулировать самонаправленные круглые стрелки так, чтобы они находились на оси средней линии графика, напротив друг друга, а не были частично сбоку, как в настоящее время?

1 ответ

Круглые стрелки могут быть изменены, манипулируя self.shiftx а также self.shifty ценности. Расположение стрелки на круге определяется self.arrpos но будьте осторожны, углы измеряются в радианах, а не в градусах. Метки ящиков можно переключать, изменяя последовательность состояний следующим образом: states<-c("sun","rain") вместо states<-c("rain","sun"), Все еще пытаюсь понять, как повернуть весь сюжет на 90 градусов.

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