2017-07-21 8 views
2

私はthis私の目的のために光沢のあるアプリを再試してみてください。私はそれの上にいくつかのテキストを追加したいので、私はRmd形式を使用します。次のコードはリンクと全く同じですが、サーバーとユーザー関数を削除した点を除いては、すべての出力が表示されないためです。 (アップデート:私は、コードを読みやすくするために、クリックして、ズームとブラシのイベントを投げた)ggplotly-sizeは光沢がありますか?サイズ変更作業が

```{r cars, echo=FALSE} 
library(plotly) 
library(shiny) 

fluidPage(
    radioButtons("plotType", "Plot Type:", choices = c("ggplotly", "plotly")), 
    plotlyOutput("plot", height = "700px"), 
    verbatimTextOutput("hover") 
) 

    output$plot <- renderPlotly({ 
    # use the key aesthetic/argument to help uniquely identify selected observations 
    key <- row.names(mtcars) 
    if (identical(input$plotType, "ggplotly")) { 
     p <- ggplot(mtcars, aes(x = mpg, y = wt, colour = factor(vs), key = key)) + 
     geom_point() 
     ggplotly(p) %>% layout(dragmode = "select") 
    } else { 
     plot_ly(mtcars, x = ~mpg, y = ~wt, key = ~key) %>% 
     layout(dragmode = "select") 
    } 
    }) 

    output$hover <- renderPrint({ 
    d <- event_data("plotly_hover") 
    if (is.null(d)) "Hover events appear here (unhover to clear)" else d 
    }) 

``` 

私は大きなデータセットと私のggplot-で長い伝説を持っているので、私は、plotlyOutputheight=700pxを追加しましたグラフ。しかし、プロットグラフが調整されている間、ggplotグラフは〜500pxより大きくなりません。

this threadによると、これはggplotlyの問題です。問題は、私がテキスト出力をオーバープロットすることをggplotly -graphが停止するように、plotlyOutputheight=700pxを設定する必要があるということです。 私は何を探していますがどちらかである:

  1. plotlyOutputheight=700pxを設定するよりもoverplottingを停止する別の方法、あるいは、

ggplotly -graphのサイズを変更するもう1つの方法後者を達成するために、後でレイアウト機能に高さをggplotlyに追加しようとしました。私は対応するlayoutset autosize=FALSEでもあります。私もspecify the height in an extra renderUI-functionに挑戦しました。

答えて

1

ggplotlyの実行後にプロット属性を変更することができます。あなたがレイアウトを調整することを意味していたかどうかは確信していますが、もしそうならば、問題が500を超えるように複製することはできませんでした。 plotlyとggplotly 700 500(plotlyOutput自体に高さを設定しない)

output$plot <- renderPlotly({ 
    # use the key aesthetic/argument to help uniquely identify selected observations 
    key <- row.names(mtcars) 
    if (identical(input$plotType, "ggplotly")) { 
     p <- ggplot(mtcars, aes(x = mpg, y = wt, colour = factor(vs), key = key)) + 
     geom_point() 
     pt<- ggplotly(p) %>% layout(dragmode = "select") 
     pt$height<-700 
     pt 
     # ggplotly(p) %>% layout(dragmode = "select") 
    } else { 
     plot_ly(mtcars, x = ~mpg, y = ~wt, key = ~key) %>% 
     layout(dragmode = "select",height = 500) 
    } 
    }) 

EDIT:

pt<-ggplotly(p) %>% layout(dragmode = "select") 
# have a look to all attributes 
str(pt) 

#Specifically height is 
pt$height<-700 

あなたは違いをテストすることができます。この場合、例えば

、 :ggplotlyとplotlyは同じ大きな高さを持ち、ugの高さがggplotlyレイアウト引数の高さより大きい場合、テキスト出力と重なり合わない。

output$plot <- renderPlotly({ 
    key <- row.names(mtcars) 
    if (identical(input$plotType, "ggplotly")) { 
     p <- ggplot(mtcars, aes(x = mpg, y = wt, colour = factor(vs), key = key)) + 
     geom_point() 
     ggplotly(p) %>% layout(dragmode = "select", height=800) 
    } else { 
     plot_ly(mtcars, x = ~mpg, y = ~wt, key = ~key) %>% 
     layout(dragmode = "select") 
    } 
    }) 

plotlyOutput("plot", height = 800) 

enter image description here

+0

しかし、私はあなた – Asayat

+0

それは仕事をしなかった理由ggplotly(P)%>%レイアウト(はDragMode = "選択"、高さ= 700)理解していませんでした。しかし、それは質問に答えない。この解決策の問題は、 'ggplotly'が' $ hover'オブジェクトをオーバープロットしていることです。 – 5th

+0

レイアウト(dragmode = "select"、height = 700)とplotlyOutput( "plot"、height = 700)の両方を試しても同じですか?私はより大きなプロットを試み、彼らはうまく調整した。 – Asayat

関連する問題