показать навигацию на графике в R

Я пытаюсь показать навигацию на графике R. Текущий статус во время один или (t1) устанавливается как val$currentstatus, а следующий статус в (t2) должен отображаться на графике на основе действия, которое пользователь выбирает в чековой книжке. затем я хочу нарисовать линию, чтобы показать этот путь. Код, который я написал, выглядит следующим образом

output$navigation<-renderPlot({



          #initial state of X and Y
          if(is.element("Within", vals$currentstatus))
            x <- 1
          y <- 2
          if(is.element("Out", vals$currentstatus)) {
            x <- 1
            y <- 1
          }
          action<-c(input$action1,input$action2)
          x<-1:4
          y<-1:2
          rewards<-matrix(rep(0,8),nrow=2)
          rewards[1,4]<- -1
          rewards[2,4]<- 1
          values<-rewards#initial Values
          states<-expand.grid(x=x,y=y)
          #Transition probability
          transition <- list( input$action1= c("within" = 0.8, "out" = .2), 
                              input$action2= c("within" = 0.3, "out" = .7))
          # The value of an action (e.g. move toward benchmark )
          action.values <- list(input$action1 = c("x" = 1, "y" = 0), 
                                input$action1 = c("x" = 1, "y" = 0))                   
          # act() function serves to move the agent to go to new position
          act <- function(action, state) {
            action.value <- action.values[[action]]
            new.state <- state
            #
            if(state["x"] == 4 && state["y"] == 1 || (state["x"] == 4 && state["y"] == 2))
              return(state)
            #
            new.x = state["x"] + action.value["x"]
            new.y=if(transition["within">"out"]){state["y"==2]}
            if(transition["within"<"out"]){state["y"==1]} 

          }
          plot(x, y, xaxt='n',yaxt='n',cex=10,pch=19,
               col=ifelse(y==1,"red","green"),ylab="status",xlab="period",
               xlim=c(0,4), ylim=c(0,3))
          axis(1,at=1:4,labels=c("t1","t2","t3","t4"))
          axis(2,at=1:2,labels=c("out bench","within bench"))

если следующая позиция находится в пределах скамейки, она должна быть зеленой и соединяться с предыдущим состоянием, а если она находится вне скамейки, она должна быть красной и соединяться с предыдущим состоянием. Также я хочу видеть имя выбранного действия на линии соединения между двумя состояниями. Кроме того, я хочу знать, как я могу обновить новую позицию и использовать ее для расчета следующего состояния в следующем периоде (t3) и так далее. Аналогично следующий график: График навигации


person user    schedule 21.10.2015    source источник
comment
Может быть, взглянуть на пакет graphviz?   -  person RmIu    schedule 21.10.2015
comment
Спасибо большое, посмотрю и сообщу о результате.   -  person user    schedule 21.10.2015
comment
Конечно, не могли бы вы создать фиктивные данные для построения графика?   -  person RmIu    schedule 21.10.2015
comment
Да, Но я застрял в одном разделе, я хочу обновить матрицу вероятности перехода в каждом состоянии. Я думаю, что если я буду использовать эмпирическое распределение для обновления матрицы вероятностей для каждого состояния, это будет полезно, но я не уверен. Я пытаюсь использовать этот метод для обновления. Если у вас есть идеи по этому вопросу, пожалуйста, дайте мне совет.   -  person user    schedule 21.10.2015
comment
К сожалению, я не совсем уверен, как этого добиться без функционирующего примера кода, может быть, опубликовать небольшой работающий пример? если вы хотите обновить выходные данные графика из циклов, вы можете попробовать invalideLater   -  person RmIu    schedule 21.10.2015
comment
Не могли бы вы показать мне ссылку на invalideLater, чтобы увидеть некоторые примеры этого.   -  person user    schedule 21.10.2015
comment
Если я вас правильно понял, вы хотите обновить график несколько раз в цикле, вот несколько примеров того, как это сделать ссылка   -  person RmIu    schedule 21.10.2015
comment
Да, именно вы правы. Спасибо, я тоже проверю эту ссылку. Спасибо за вашу помощь.   -  person user    schedule 21.10.2015
comment
Конечно! и если вы можете собрать небольшой автономный пример кода, я мог бы взглянуть на это   -  person RmIu    schedule 21.10.2015
comment
Хорошо, я сделаю это сейчас.   -  person user    schedule 21.10.2015
comment
Я обновил свой вопрос. Я объясняю все, что хочу, в #lines   -  person user    schedule 21.10.2015