R闪亮:如何让方形图使用全宽度面板?

时间:2016-11-10 22:48:26

标签: r shiny

我有一个方形图(宽高比1:1),我正在尝试将其缩放为super.onCreate(savedInstanceState); setContentView(R.layout.activity_consulta); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); TextView Lab=(TextView)findViewById(R.id.lab_con); 的全宽。由于mainPanel参数默认为height,因此图表在面板中间显示为400x400图像:

enter image description here

我知道您可以将400px的{​​{1}}参数更改为heightplotOutput,以使面板使用图像的自然尺寸。但是,"100%"然后尝试从"auto"检索高度参数,该参数本身从plotOutput获取renderPlot值,从而产生“Catch-22”场景和情节身高height

我要做的是将plotOutput的{​​{1}}值(或0px)设置为等于height的{​​{1}},但我不确定如何访问此值。到目前为止,这是我的代码:

renderPlot

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

基于this post

library( shiny )
library( ggplot2 )

server <- function(input, output)
{
  output$plot1 <- renderPlot({
    X <- data.frame( x=rnorm(10), y=rnorm( 10) )
    ggplot( X, aes(x=x, y=y) ) + geom_point() +  coord_fixed()
    } ,
    height=reactive(ifelse(!is.null(input$innerWidth),input$innerWidth*3/5,0))
  )
}

ui <- fluidPage(
  sidebarLayout( 
    sidebarPanel(
      tags$head(tags$script('$(document).on("shiny:connected", function(e) {
                            Shiny.onInputChange("innerWidth", window.innerWidth);
                            });
                            $(window).resize(function(e) {
                            Shiny.onInputChange("innerWidth", window.innerWidth);
                            });
                            ')),
      sliderInput("n", "Number of Samples", min=10, max=1000, value=100) ),
    mainPanel( plotOutput("plot1"))
  )
)

shinyApp(ui = ui, server = server)