Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:散点图未显示_R_Shiny_R Plotly - Fatal编程技术网

R:散点图未显示

R:散点图未显示,r,shiny,r-plotly,R,Shiny,R Plotly,我正在尝试渲染一个基于动态滑块的散点图。然而,我似乎错过了什么 运行应用程序时,我看到的错误如下: 错误:第一个参数无效 我非常感谢你帮助我了解出了什么问题 请找到下面的代码(希望现在可以复制) #加载要使用的库。Pacman确保图书馆的再现性 如果(!require(“pacman”))安装包(“pacman”) pacman::p_载荷(ggplot2、dplyr、tidyr、rpart、shiny、SHINYDASHORD、plotly、DT) #加载泰坦尼克号数据集 dataset您不应

我正在尝试渲染一个基于动态滑块的散点图。然而,我似乎错过了什么

运行应用程序时,我看到的错误如下:

错误:第一个参数无效

我非常感谢你帮助我了解出了什么问题

请找到下面的代码(希望现在可以复制)

#加载要使用的库。Pacman确保图书馆的再现性
如果(!require(“pacman”))安装包(“pacman”)
pacman::p_载荷(ggplot2、dplyr、tidyr、rpart、shiny、SHINYDASHORD、plotly、DT)
#加载泰坦尼克号数据集

dataset您不应该在闪亮的应用程序中调用
plotlyOutput(“Trialplot”)
两次,而且,
sliderInput
有两个值,即滑块的最小值和最大值,因此您不能使用此类
dataset$Age==input$slider

我试图复制您的代码,现在它对我有效,下次尝试使用
dput(data)
函数的输出发布您的数据

library(shiny)
pacman::p_load(ggplot2,dplyr,tidyr, rpart, shiny, shinydashboard, plotly, DT)


#load Titanic dataset 
dataset<-read.csv("titanic.csv")


ui <- fluidPage(
  dashboardHeader(
    title = "My trial",
    titleWidth = 300
  ),

  dashboardSidebar(
    sidebarMenu(
      sidebarMenu(
        menuItem("Visualization", tabName = "visualization", icon = icon("dashboard")),
        menuItem("Data Table", tabName = "datatable", icon = icon("th"))
      )

    )
  ),

  dashboardBody(
    tabItems(
      # Content of first tab
      tabItem(tabName = "visualization",
              h2("Visualization using Plot_ly"),
              fluidRow(
                # box(plotlyOutput("Trialplot")),
                box(
                  title = "Age range",
                  status="primary",
                  solidHeader=TRUE,
                  collapsible=TRUE,
                  sliderInput("slider", "Please select the age range to be seen:", 0, max(dataset$Age,na.rm = T), c(0,max(dataset$Age,na.rm = T)/2), ticks=FALSE)
                )
              ), 
              box(plotlyOutput("Trialplot"))

      ),

      # Content of second tab
      tabItem(tabName = "datatable",
              h2("Data table")
      )
    )
  )
)


server = shinyServer(function(input, output,session) { 
  observe({
    print(input$slider)
  })
  output$Trialplot<-renderPlotly({
    dataset_filtered<-dataset[dataset$Age >= input$slider[1] & dataset$Age <= input$slider[2],]
    plot_ly(data = dataset_filtered, x = ~Fare, y = ~Age , 
            color=~Survived, 
            colors=NULL, 
            type='scatter',
            marker=list(size=10),
            hoverinfo='text',
            text=~paste("Name:",Name,", Age:",Age,", Fare",Fare)
    )%>%
      layout(title="Age vs.Fare")
    })

}
)

shinyApp(ui,server)
库(闪亮)
pacman::p_载荷(ggplot2、dplyr、tidyr、rpart、shiny、SHINYDASHORD、plotly、DT)
#加载泰坦尼克号数据集

datasetNow变量
dataset
未定义,因此仍然不可复制。再次道歉。修好了。谢谢你的耐心!这没有帮助,因为我们的计算机上没有CSV文件。此外,您似乎还包括了一些与问题无关的其他包装。另外,不要在一个问题上都包含
rm(list=ls(all=TRUE))
,因为iMac可能会从试图帮助你的人那里删除数据,而且它(通常也不推荐用于你自己的代码)[谢谢你的提示,Flick先生。这是经典的泰坦尼克号数据集。我应该试着让它更具可复制性吗?很有效。非常感谢!
library(shiny)
pacman::p_load(ggplot2,dplyr,tidyr, rpart, shiny, shinydashboard, plotly, DT)


#load Titanic dataset 
dataset<-read.csv("titanic.csv")


ui <- fluidPage(
  dashboardHeader(
    title = "My trial",
    titleWidth = 300
  ),

  dashboardSidebar(
    sidebarMenu(
      sidebarMenu(
        menuItem("Visualization", tabName = "visualization", icon = icon("dashboard")),
        menuItem("Data Table", tabName = "datatable", icon = icon("th"))
      )

    )
  ),

  dashboardBody(
    tabItems(
      # Content of first tab
      tabItem(tabName = "visualization",
              h2("Visualization using Plot_ly"),
              fluidRow(
                # box(plotlyOutput("Trialplot")),
                box(
                  title = "Age range",
                  status="primary",
                  solidHeader=TRUE,
                  collapsible=TRUE,
                  sliderInput("slider", "Please select the age range to be seen:", 0, max(dataset$Age,na.rm = T), c(0,max(dataset$Age,na.rm = T)/2), ticks=FALSE)
                )
              ), 
              box(plotlyOutput("Trialplot"))

      ),

      # Content of second tab
      tabItem(tabName = "datatable",
              h2("Data table")
      )
    )
  )
)


server = shinyServer(function(input, output,session) { 
  observe({
    print(input$slider)
  })
  output$Trialplot<-renderPlotly({
    dataset_filtered<-dataset[dataset$Age >= input$slider[1] & dataset$Age <= input$slider[2],]
    plot_ly(data = dataset_filtered, x = ~Fare, y = ~Age , 
            color=~Survived, 
            colors=NULL, 
            type='scatter',
            marker=list(size=10),
            hoverinfo='text',
            text=~paste("Name:",Name,", Age:",Age,", Fare",Fare)
    )%>%
      layout(title="Age vs.Fare")
    })

}
)

shinyApp(ui,server)