Тонкая настройка цепи Маркова
У меня есть следующая цепь Маркова:
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 градусов.