2016-09-15 12 views
1

プロット(六角形など)のかなり大きいコードなので、私はRでプロットする関数を使用します。きちんとしたコードのために、私はこれを関数に入れました。光沢のあるプロット関数を使用する

それは本当に今の問題ではありませんSOMアルゴリズム、についてですが、私は、私は必要なデータを作成し、その後、私は通常、次のコードでそれをプロットします。私がやりたいだから今

mydata <- som_model$codes 
    var <- 1 
    title <- names(som_model$data)[var] 
    dataplot <- matrix(mydata[,var],nrow=gridsize,ncol=gridsize,byrow=TRUE) 

    source('plotHexMap.R') 
    plotHexMap(dataplot,title,gridsize) 

シャイニーでこの:

observe({ 
    if(input$plottrained>0){ 

     var <- 1 
     title <- names(som_model$data)[var] 
     dataplot<-matrix(mydata[,var],nrow=gridsize,ncol=gridsize,byrow=TRUE) 

     source("plotHexMap.R") 
     output$plot1 <-renderPlot({plotHexMap(dataplot,title,gridsize)})  

    } 

    }) 

[OK]をので、これは動作しませんが、私はちょうど(< <と - )グローバル変数にプロットを書くとき行うことによって、それが存在しないと私はプロットにそれを見ることができるので、これは:

observe({ 
    if(input$plottrained>0){ 

     var <- 1 
     title <- names(som_model$data)[var] 
     dataplot<-matrix(mydata[,var],nrow=gridsize,ncol=gridsize,byrow=TRUE) 

     source("plotHexMap.R") 
     plot1 <<-renderPlot({plotHexMap(dataplot,title,gridsize)})  

    } 

    }) 

私はここで何が欠けていますか?通常のR環境ではこれを関数からプロットしないと光沢が必要なのは何ですか?

本当にありがとうございます。事前のおかげで、代わりにobserve

ピーター

答えて

0

、サーバ内のrenderPlotを試してみてください:UIの

output$myplot <- renderPlot({ 
    if(input$plottrained>0){ 
     var <- 1 
     title <- names(som_model$data)[var] 
     dataplot<- matrix(mydata[,var],nrow=gridsize,ncol=gridsize,byrow=TRUE) 

     source("plotHexMap.R", local = TRUE)  #assuming this file is actually local for you 
     plot1 <- plotHexMap(dataplot,title,gridsize)  
    } 
    else{return(NULL)} 
    }) 

そしてplotOutput:

plotOutput('myplot') 
+0

これは動作します。ありがとうございます@grieman – Piet93

+0

残念ながら、私はこれらの数字の複数をプロットするために私のループをもう使用できません。しかし、私は動的なrenderUIを使ってこれをやっていて、その中に何度もプロットしていたので、これについてはまだ正確な質問はしていません。あるいは、ループでこれらの要素を簡単にプロットする方法を知っていますか? – Piet93

関連する問題