Shiny 不显示 ggplot 数据 [英] Shiny not displaying ggplot data
问题描述
我是使用闪亮包的新手.我正在尝试使用它来显示 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 input
s 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屋!