2017-05-16 7 views
1

Rをプロットして、(プロットをドラッグするのではなく再生ボタンを押して)アニメーションを作成してサーフェスプロット(火山)を回るようにします。Rフレームを使ってプロット面をプロットして表示を変更する

私は現在持っているコードは次のとおりです。

p <- plot_ly(z = ~volcano, type = "surface") 

layout(p,scene=list(camera=list(up=list(x=0,y=0,z=1), 
           center=list(x=0,y=0,z=0), 
           eye=list(x=2,y=2,z=0) 
           ))) 

animation_slider(p, hide = FALSE) 

私はそれが全体のプロットを再描画せずにプロットを変化するように、アニメーションスライダーからcameraeyeの値を調整したいと思います。これは、プロットの文書に示されている他の例の大部分のように、データの変化ではなくカメラの位置の変化であることに注意してください。

これは可能ですか?私は次のことを得るアニメーション化する光沢のあるスライダーを使用し

EDIT

...しかし、これはまだ再描画/再レンダリングビューの各変更で、全体のプロットは、そのパフォーマンスは「ぎくしゃく」または遅いです...私はframe引数を使用してこの問題を解決すると思いますが、確かではないか...

# ui.R 

library(shiny) 
library(plotly) 

shinyUI(fluidPage(
    titlePanel("Spining surface"), 
    sidebarPanel(
    sliderInput("deg", "degrees:", 
       min = 0, max = (360*3)+30, 
       value = 30,step=10, 
       animate=animationOptions(interval=100)) 
), 
    mainPanel(
    plotlyOutput("surface") 
) 
)) 

# server.R 

library(shiny) 
library(plotly) 

shinyServer(function(input, output) { 

    output$surface <- renderPlotly({ 

    p <- plot_ly(z = ~volcano, type = "surface") 

    layout(p,scene=list(camera=list(up=list(x=0,y=0,z=1), 
            center=list(x=0,y=0,z=0), 
            eye=list(x=1.25*sin(input$deg*(pi/180)), 
              y=1.25*cos(input$deg*(pi/180)), 
              z=1.25) 
            ))) 

    }) 

}) 

答えて

関連する問題