2016-09-24 7 views
2

http://rmarkdown.rstudio.com/authoring_shiny.htmlの例では、renderPlot自体がプロットをマークダウンに描画しています。次のplotOutputのステップの一部として宣言されているクリック、ブラシなどのやりとりを許可するために、どのようにマークダウンを行うことができますか?Markdownの対話型ggplot

plotOutputshinyの対話例は、ここに - http://shiny.rstudio.com/articles/plot-interaction.htmlです。

コードスニペット -

```{r, echo = FALSE} 

output[['Plot1']] = renderPlot(

    ggplot(mtcars) + geom_point(aes(x = cyl, y = qsec)) 

) 

renderPlot(

    ggplot(mtcars) + geom_point(aes(x = cyl, y = wt)) 

) 


print("renderPlot above. plotOutput below (which doesn't get rendered).") 

renderUI({ 
    plotOutput(
     'Plot1', 
     brush = brushOpts(
     id = 'Brush1' 
    ), 
     dblclick = dblclickOpts(id = 'DblClick1'), 
     click = 'Click1', 
     height = "100%" 

    ) 
}) 

``` 

答えて

0

問題は、パーセントでplotOutputのパラメータheightを使用していることです。私たちは、ドキュメント?shiny::plotOutputで見つけることができます:予想通り、高さのために、「自動」または「100%」を使用したために、一般に高さがHTML/CSSでどのように計算されるかの、動作しません、

注意。

height = 100%(この場合は冗長)を削除すると、プロットがレンダリングされます。出力の高さを変更したい場合は、パーセント値の代わりにピクセルを使用できます。

input$Click1,input$DblClick1input$Brush1で値にアクセスし、*関数に渡すことができます。


例:

--- 
title: "Example" 
author: "Unnamed_User" 
date: "24 Sep 2016" 
output: html_document 
runtime: shiny 
--- 

```{r, echo = FALSE} 
library(ggplot2) 
``` 

### Normal plot 

```{r, echo = FALSE} 
ggplot(mtcars) + geom_point(aes(x = cyl, y = wt)) 
``` 


### Interactive plot 

```{r, echo = FALSE} 
renderUI({ 
    plotOutput(
     'Plot1', 
     brush = brushOpts(
     id = 'Brush1' 
    ), 
     dblclick = dblclickOpts(id = 'DblClick1'), 
     click = 'Click1' 
    ) 
}) 

output[['Plot1']] <- renderPlot({ 
    ggplot(mtcars) + geom_point(aes(x = cyl, y = qsec)) 
}) 
``` 

### Clicked point 

```{r, echo = FALSE} 
renderPrint({ 
    cat(" x:", input$Click1$x, 
     "\n", 
     "y:", input$Click1$y) 
}) 
```