闪亮的绘图输出中的选择性 y 变量

如何解决闪亮的绘图输出中的选择性 y 变量

我试图在一个闪亮的应用程序中包含一个情节图,其中 y 变量由用户选择。我最初将 ggplot2 和 plotly 一起使用,我拥有的代码对此非常有效。但是因为数据点的数量非常多,加载绘图需要几分钟,所以我尝试切换到绘图只是因为我读了一些可以让它更快的地方。不幸的是,我无法让 y 变量选择起作用。

我已经尝试了此处给出的建议:Change plotly chart y variable based on selectInput 和此处:Error: invalid first argument with R Shiny plot,但它们都不起作用。在这一点上,我已经尝试了很多我不记得详细的事情,但基本上我要么在使用 yvar <- get(input$yvariable1) 的一些变体然后在 plot 函数中包含 ~yvar 时得到错误“无效的第一个参数”,要么当它是 y = ~input$yvariable1 时,我收到“错误:无法在符号上设置属性”。当我使用 y = newdata[,input$yvariable1] 时,一些东西被绘制出来,但它完全错误(轴的比例高达 50k 或其他东西而不是 10 并且分布也不正确 - 基本上它看起来不像我通过简单输入绘制它相同的 y 变量非反应性)。

我的代码如下 - 在 UI 中:

uIoUtput("ySelection1")

在服务器中:

function(input,output) {
  
  output$ySelection1 <- renderUI({
    varSelectInput("yvariable1","Y Variable:",df[,c('PO_count_citing','cpc_3digits_count_citing','cpc_4digits_count_citing')],selected='PO_count_citing')
  })

  yvar1 <- eventReactive(input$yvariable1,{input$yvariable1})

  output$plot1 <- renderPlotly({
    newdata <- subset(df,Technology == input$type & appln_auth%in%input$PO)
    validate(no_data(nrow(newdata)))
    #yvar <- get(yvar1()) (Failed attempt at making this work)
    #yvar <- get(input$yvariable1) (another Failed attempt)
    scatterPlot <- plot_ly(newdata,x = ~appln_filing_year,y = ~input$yvariable1,type="scatter",mode="markers",# Hover text:
    text = ~paste(some text),color = ~appln_auth)
  })

}

但我无法让它工作。在原始 ggplot2 版本中,它输入为 aes(x = appln_filing_year,y = !!yvar1(),bla bla)

但是!!甚至一个!或删除 yvar1 之后的括号都在 plotly 中引发错误

大家有什么建议吗?

解决方法

这是一个使用 get 的简单示例:

library(shiny)
library(plotly)

DF <- setNames(data.frame(rep(1:20,5),mapply(runif,min = 1:5,max = 2:6,MoreArgs = list(n = 20))),c("x",paste0("y",1:5)))
       
library(shiny)

ui <- fluidPage(
  plotlyOutput("myPlot"),selectInput("yvariable","Select the Y variable",1:5))
)

server <- function(input,output,session) {
  output$myPlot <- renderPlotly({
    req(input$yvariable)
    plot_ly(data = DF,x = ~x,y = ~get(input$yvariable),type = "scatter",mode = "markers")
  })
}

shinyApp(ui,server)              

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?