2016-04-13 17 views
0

Aşağıdaki Markov zinciri var:ince ayar yapma Markov zinciri

aşağıdaki taslağını ortaya
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) 

:

enter image description here

nasıl 90 derece saat yönünde döndürmek ve ayarlayabilirsiniz kendi yönelimli dairesel oklar, o anda, halihazırda olduğu gibi, kısmen yan yana olmak yerine, arsanın orta çizgisi ekseninde olduklarından, birbirlerine karşı yönelirler.

cevap

0

Dairesel oklar self.shiftx ve self.shifty değerlerini işleyerek değiştirilebilir. Dairenin üzerindeki ok konumu self.arrpos tarafından belirlenir, ancak dikkat edin, açıların derece değil radyan cinsinden ölçülür. Kutu etiketleri, şu gibi durumların sırasını değiştirerek değiştirilebilir: states<-c("rain","sun") yerine states<-c("sun","rain"). Hala tüm arsa 90 derece nasıl döndürmek için anlamaya çalışıyorum.