Shiny 不显示 ggplot 数据 [英] Shiny not displaying ggplot data

查看:27
本文介绍了Shiny 不显示 ggplot 数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是使用闪亮包的新手.我正在尝试使用它来显示 ggplot2 图.我的代码没有错误,但是数据点没有出现在图表上.当我从 ui 中选择变量时,轴标签会相应更改,但数据不会添加到图中.

I am new to working with shiny package. I am trying to use it to display a ggplot2 graph. I get no errors with my code, however data points are not appearing on the graph. When I select the variables from ui, the axes labels changes accordingly but the data is not added to the plot.

谢谢,

代码:

ui <- fluidPage(
     sidebarLayout(
         sidebarPanel(
             selectInput(inputId = "y", 
                         label = "Y-axis:", 
                         choices = c("P-value", "P-adjust"),
                         selected = "P-adjust"),
             selectInput(inputId = "x" , 
                         label = "X-axis:", 
                         choices = c("FC", "Mean_Count_PD"),
                         selected = "FC")
                 ),
         mainPanel(plotOutput(outputId = "scatterplot"))
         ))

server <- function(input, output) 
     {
     output$scatterplot <- renderPlot({
     ggplot(data = mir, aes(input$x,input$y)) + geom_point()
     })
 }

推荐答案

问题是你必须告诉 ggplot 你的 input 是数据集中变量的名称.这可以实现,例如通过使用 .data 代词,即代替使用 input$x 只是一个字符串,使用 .data[[input$x]] 告诉 ggplot 通过 input$x 您的意思是数据中具有该名称的变量:

The issue is that you have to tell ggplot that your inputs are names of variables in your dataset. This could be achieved e.g. by making use of the .data pronoun, i.e. instead of using input$x which is simply a string use .data[[input$x]] which tells ggplot that by input$x you mean the variable with that name in your data:

由于您未提供任何数据,我无法检查,但这应该会给您所需的结果:

As you provided no data I could not check but this should give you the desired result:

library(shiny)
library(ggplot2)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId = "y", 
                  label = "Y-axis:", 
                  choices = c("P-value", "P-adjust"),
                  selected = "P-adjust"),
      selectInput(inputId = "x" , 
                  label = "X-axis:", 
                  choices = c("FC", "Mean_Count_PD"),
                  selected = "FC")
    ),
    mainPanel(plotOutput(outputId = "scatterplot"))
  ))

server <- function(input, output) {
  output$scatterplot <- renderPlot({
    ggplot(data = mir, aes(.data[[input$x]], .data[[input$y]])) + geom_point()
  })
}

shinyApp(ui, server)

这篇关于Shiny 不显示 ggplot 数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆