如何有条件地更改R'中图表的纵横比;什么是闪亮的包裹?
只是在玩,已经爱上它了。但是,如何根据绘制的图表,使反应绘图/绘图输出组合中的图表具有不同的大小 在第一个示例中,我选择了“收益率曲线”分析,并获得了我想要的纵横比: 但当我选择另一个分析时,在这个例子中是一个热图,它现在与扭曲它的“产量曲线”图表大小相同(单元格应该是正方形,而不是矩形) 如何根据已选择的图表更改图表大小?我尝试过将height参数设置为NA、NULL或“”,但它不喜欢这些 单独使用,但在同一个应用程序中,如何在侧边栏面板顶部的selectInput和textInputs之间获得一些空白?我试过h4(“”),但不起作用 这是我的ui.R:如何有条件地更改R'中图表的纵横比;什么是闪亮的包裹?,r,shiny,R,Shiny,只是在玩,已经爱上它了。但是,如何根据绘制的图表,使反应绘图/绘图输出组合中的图表具有不同的大小 在第一个示例中,我选择了“收益率曲线”分析,并获得了我想要的纵横比: 但当我选择另一个分析时,在这个例子中是一个热图,它现在与扭曲它的“产量曲线”图表大小相同(单元格应该是正方形,而不是矩形) 如何根据已选择的图表更改图表大小?我尝试过将height参数设置为NA、NULL或“”,但它不喜欢这些 单独使用,但在同一个应用程序中,如何在侧边栏面板顶部的selectInput和textInputs之
library(shiny)
shinyUI(pageWithSidebar(
headerPanel(h1("SAGB Relative Value Tool")),
sidebarPanel(
h4("Choose analysis:"),
selectInput("analysis1", "",
choices = c("Yield curve", "Optical asset swap spreads",
"Cheap dear box", "Cheap dear charts", "Switch signaliser",
"Barbells")),
h4(" "),
h4("Yield override:"),
lapply(bondNames, function(x)
textInput(paste(x, "bond"), x, last(sagb$sagb)[x]))
),
mainPanel(
h3(textOutput("AnalysisHeader")),
plotOutput("AnalysisOutput", height = "10in"))
))
这是我的服务器
library(shiny)
shinyServer(function(input, output) {
output$AnalysisHeader <- reactiveText(function() {
input$analysis1
})
output$AnalysisOutput <- reactivePlot(function() {
switch(input$analysis1,
"Yield curve" = wo(whichOut = 1),
"Optical asset swap spreads" = wo(whichOut = 2),
"Cheap dear box" = wo(whichOut = 3),
"Cheap dear charts" = wo(whichOut = 4),
"Switch signaliser" = wo(whichOut = 5),
"Barbells" = wo(whichOut = 6)
)
})
})
库(闪亮)
shinyServer(功能(输入、输出){
输出$AnalysisHeader(有时这样做是个好主意(与我自己交谈,参见我对OP的评论)
然而,到目前为止,我还没能设法去上班(使用height=“15in”
)
编辑:它现在正在工作,高度必须是数字,可选的units=“px”
和res
当然可以将单位
转换为像素
编辑2:别忘了更新Shiny[到最新版本],它修复了我遇到的一些错误
编辑3:以下是动态更改高度的示例:
getVarHeight <- function() {
return(getNumberOfPlots() * 400)
}
output$out <- reactivePlot(doPlots, height=getVarHeight)
bondNames是程序中的一个全局列表变量,它调用runApp(),其中包含南非政府债券(“SAGB”)市场中12种活跃债券的名称。此处,它用于创建侧栏收益率覆盖输入(虽然有点草率——我刚刚发现了NumericiInput,我应该使用for循环而不是lappy,并且我的粘贴忽略了sep=”“参数)。无论如何与问题无关。例如,wo()和sagb$sagb数据结构也是包含代码的一部分。我支持这个问题(以防来自Rstudio的人想知道有多少人对此功能感兴趣!),但我不能静态设置高度,因为根据动态用户界面,绘图的数量会有所不同……谢谢Kevin-我确实做了RTFM,并看到了这一点;)但是我应该在plotOutput函数中添加什么,它的默认高度为400px。我相信您也可以将height=“auto”
传递给plotOutput
函数,这应该使plotOutput使用其内容的“自然”高度。(确保不要使用height=“auto”)
对于同时进行的reactivePlot
和plotOutput
来说:每个都将根据另一个来确定高度,我猜最终的高度是0px。)
Error in switch(units, `in` = res, cm = res/2.54, mm = res/25.4, px = 1) * :
non-numeric argument to binary operator
getVarHeight <- function() {
return(getNumberOfPlots() * 400)
}
output$out <- reactivePlot(doPlots, height=getVarHeight)
plotOutput(outputId = "plot_rain", height="100%"))