R:用图表包绘制马尔可夫模型(修改图表)

R: Drawing markov model with diagram package (making diagram changes)

我有以下代码使用包 heemod(用于矩阵)和包 diagram(用于绘图)绘制转移概率图。以下代码使用我生成的数据生成这样的图表:

library('heemod')
library('diagram')
mat_dim <- define_transition(
state_names = c('State_A', 'State_B', 'State_C'),
  .18, .73, .09, 
  .12, .10, .78,
  .58, .08, .33);
plot(mat_dim)

这将创建以下图:

我的问题都是因为我对diagram包的理解太差,搞不懂这些看似简单的适配...

如何移动 State_B 处的箭头(例如向一侧移动 90 度),使其不与其他箭头重叠?有没有一种简单的方法可以使各州靠得更近?

?plotmat

  • 参数 curve,一个矩阵,用于控制 "non-self" 转换的曲率
  • 参数 self.shiftxself.shifty 来控制自转换的位置
  • 参数self.arrpos控制自箭头的位置

这真不容易。这是我反复试错得到的

curves <- matrix(nrow = 3, ncol = 3, 0.05)
plot(mat_dim, 
     curve=curves, 
     self.shiftx = c(0.1,-0.1,0), 
     self.shifty = c(-0.1,-0.1,0.15), 
     self.arrpos = c(1,2.1,1))