【问题标题】:How to update the sliderbar values inside a normal function in shiny R如何更新闪亮R中正常函数内的滑块值
【发布时间】:2014-08-22 15:57:00
【问题描述】:

我在 UI.R 中创建了一个 sliderInput

fluidRow(column(4,
                uiOutput("showMapPlot"),
                wellPanel(
                    sliderInput("slider", label = h4("Time (Hours)"), min = 1, max = 552, value = c(10,50),animate = FALSE, width="70%", format = "#")
                  ), ...................

我将 input$slider1 和 input$slider[2] 传递到 server.R 并使用 ggplot 函数绘制一些图形。

函数如下

plot_1 <- function() {
        var = input$select
        gg1 <- aggregate(cbind(get(var)) ~ Mi + hours , a, FUN=mean)
        names(gg1)[3] <- var
        print(ggplot(gg1, aes_string(x = "hours", y = var, group = "Mi")) +
                geom_point(aes(color = factor(Mi))) + geom_smooth(stat= "smooth" , alpha = I(0.4), method="loess",color="grey", formula = y ~ x) 

如何从 UI.r 访问滑块输入并使用 server.R 实时更新。 我想根据滑块输入值递归更改 x 轴值。

我知道表达式中的数据集 a

gg1 <- aggregate(cbind(get(var)) ~ Mi + hours , a, FUN=mean)

应该以某种方式改变以访问滑块输入范围内的数据。 我不知道我应该在哪里实现它。 我试图在这个函数本身内更新,但它不起作用。 我绑定了renderUI,也没有用,主要是方法不对。

如果有人知道解决方案,请告诉我。

数据如下。 https://drive.google.com/file/d/0B54s5NXDypdMRmdsSjZnMzd5VVE/edit?usp=sharing

对象 a 是先验创建的,例如“a &lt;- read.table(file=file.choose(), header=FALSE,col.names= c("Ei","Mi","hours","Nphy","Cphy","CHLphy","Nhet","Chet","Ndet","Cdet","DON","DOC","DIN","DIC","AT","dCCHO","TEPC","Ncocco","Ccocco","CHLcocco","PICcocco","par","Temp","Sal","co2atm","u10","dicfl","co2ppm","co2mol","pH"))

【问题讨论】:

  • 我不确定我是否理解您的要求。您是否希望图表根据滑块值进行更改?或者您是否尝试更新滑块以选择不同的值?
  • @JohnPaul 感谢您的回复。对不起,如果我的解释不完美。你的第一个假设是正确的。我正在尝试根据用户从浏览器中选择的滑块值更改图表。

标签: r shiny


【解决方案1】:

我真的不知道ggplot,但您的滑块会给您两个值input$slider[1]input$slider[2],分别是最小值和最大值。如果你想改变 x 轴的限制,我想你使用

 + xlim(input$slider[1],input$slider[2]) 

在您的 ggplot() 命令中。

【讨论】:

  • 这正是我愿意实现的。我花了很多时间通过闪亮的功能寻找解决方案,从未考虑过通过 ggplot 进行管理。感谢您的解决方案。
猜你喜欢
  • 2020-09-13
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 2023-04-01
  • 2018-01-28
  • 2021-12-14
相关资源
最近更新 更多