2016-04-14 133 views
0

我在学习Shiny,并试图绘制虹膜数据集中的定量数据。我在ui.R中的选择输入似乎工作,但我无法得到它的阴谋。有什么建议? 代码如下在R中使用Shiny制作阴谋

ui.R

irisx<-read.csv("iris.csv",header=T) 
library(shiny) 
shinyUI(fluidPage(
    titlePanel("Assignment 11"), 
     sidebarLayout(
     sidebarPanel(
      selectizeInput("x","X:",choices = c("Sepal Length"="Sepal.Length","Sepal Width"="Sepal.Width","Petal Length"="Petal.Length", "Petal Width"="Petal.Width")), 
      selectizeInput("y","Y:",choices = c("Sepal Length"="Sepal.Length","Sepal Width"="Sepal.Width","Petal Length"="Petal.Length", "Petal Width"="Petal.Width")) 
     ), 
     mainPanel(plotOutput("irisChart")) 
    ) 
    )) 

server.R

irisx<-read.csv("iris.csv",header=T) 

library(shiny) 
library(ggplot) 
shinyServer(function(input,output){ 
output$irisChart<-renderPlot({ 
irx<-as.numeric(input$x) 
iry<-as.numeric(input$y) 
p1<-ggplot(irisx,aes(input$x,input$y)) + geom_point() 
print(p1) 
    }) 
}) 

回答

1

添加aes_stringggplot

rm(list = ls()) 
library(shiny) 
library(ggplot2) 

irisx <- iris 
ui <- fluidPage(
    titlePanel("Assignment 11"), 
    sidebarLayout(
    sidebarPanel(
     selectizeInput("x","X:",choices = c("Sepal Length"="Sepal.Length","Sepal Width"="Sepal.Width","Petal Length"="Petal.Length", "Petal Width"="Petal.Width")), 
     selectizeInput("y","Y:",choices = c("Sepal Length"="Sepal.Length","Sepal Width"="Sepal.Width","Petal Length"="Petal.Length", "Petal Width"="Petal.Width")) 
    ), 
    mainPanel(plotOutput("irisChart")) 
) 
) 

server <- shinyServer(function(input,output){ 
    output$irisChart <- renderPlot({ 
    irx <- input$x 
    iry <- input$y 
    p1 <- ggplot(data = irisx,aes_string(irx,iry)) + geom_point() 
    p1 
    }) 
}) 

shinyApp(ui, server) 

enter image description here

+1

谢谢猪排! – David