ShinyApp在本地运行正常,但在shinyapps.io上无法正常运行。

huangapple go评论73阅读模式
英文:

ShinyApp works locally but not on shinyapps.io

问题

我有一个闪亮的应用程序,可以从数据库中提取NBA统计数据并制作散点图。 app.R文件的代码如下。 您需要从GitHub安装nbaplotR devtools :: install_github("abresler / nbastatR")以及nbaplotR如果(!require("pak"))install.packages("pak") pak :: pak("mrcaseb / nbaplotR")。 当我在本地运行它时,此应用程序有效,但在尝试部署到shinyapps.io时却无法正常运行。 在shinyapps.io上,图表和表格都不显示。 我认为shinyapps.io服务器未能正确连接或安装上述包。 任何帮助将不胜感激!

英文:

I have a shiny app that pulls in NBA statistics from a database and makes a scatterplot. The app.R file code is below. You need to install nbaplotR from github devtools::install_github("abresler/nbastatR") along with nbaplotR if (!require("pak")) install.packages("pak")
pak::pak("mrcaseb/nbaplotR")
. This app works when I run it locally but not on shinyapps.io when I try to deploy it. In shinyapps.io neither the plot or the table show up. I think the shinyapps.io server is not properly connecting with or installing the above mentioned packages. Any help would be greatly appreciated!

library(devtools)
library(shiny)
library(ggplot2)
library(nbastatR)
library(tidyverse)
library(nbaplotR)
library(nbapalettes)
library(forcats)
library(ggpubr)
library(DT)
library(ggpath)
  

ui <- fluidPage(
  titlePanel("NBA team stats"),
  sidebarLayout(
    sidebarPanel(
      
      selectInput("x", "X-axis stat", 
                     choices = c("gp", "pctWins", "fgm", "fga", "pctFG", 
                                 "fg3m", "fg3a", "pctFG3", "pctFT", 
                                 "gpRank", "pctWinsRank", "minutesRank", "fgmRank",          
                                 "fgaRank", "pctFGRank", "fg3mRank", "fg3aRank",         
                                 "pctFG3Rank", "pctFTRank", "fg2m", "fg2a",            
                                 "pctFG2", "wins", "losses", "minutes", "ftm",
                                 "fta", "oreb", "dreb", "treb", "ast", "tov", "stl",            
                                 "blk", "blka", "pf", "pfd", "pts", "plusminus",
                                 "winsRank", "lossesRank", "rankFTM", "rankFTA", 
                                 "orebRank", "drebRank", "trebRank", "astRank",
                                 "tovRank", "stlRank", "blkRank", "blkaRank", "pfRank", 
                                 "pfdRank", "ptsRank", "plusminusRank",  "Name_abbreviation"),
                     selected = "fgm", 
                     multiple = FALSE
                     
      ),
      
      
      selectInput("y", "Y-axis stat", 
                     choices = c("gp", "pctWins", "fgm", "fga", "pctFG", 
                                 "fg3m", "fg3a", "pctFG3", "pctFT", 
                                 "gpRank", "pctWinsRank", "minutesRank", "fgmRank",          
                                  "fgaRank", "pctFGRank", "fg3mRank", "fg3aRank",         
                                 "pctFG3Rank", "pctFTRank", "fg2m", "fg2a",            
                                 "pctFG2", "wins", "losses", "minutes", "ftm",
                                 "fta", "oreb", "dreb", "treb", "ast", "tov", "stl",            
                                  "blk", "blka", "pf", "pfd", "pts", "plusminus",
                                 "winsRank", "lossesRank", "rankFTM", "rankFTA", 
                                 "orebRank", "drebRank", "trebRank", "astRank",
                                 "tovRank", "stlRank", "blkRank", "blkaRank", "pfRank", 
                                 "pfdRank", "ptsRank", "plusminusRank"), 
                     selected = "pctFG", 
                     multiple = FALSE
      ),
    ),
    mainPanel(
      plotOutput("logoscatter"),
      DT::DTOutput("Table")
    )
  )
)


server <- function(input, output) {
  


    
    #Getting team logos for the plots
    Names_abbrev <- valid_team_names()
    
    Names_abbrev[2] <- Names_abbrev[3]
    Names_abbrev[3] <- "BKN"
    Names_abbrev[26] <- "SAC"
    Names_abbrev[27] <- "SA"
    
    Sys.setenv(VROOM_CONNECTION_SIZE=500072)
    team_stats_general <- unique(nbastatR::teams_players_stats(seasons = 2023, 
                                                               types = "team", 
                                                               tables = "general"))
    
    
    
    team_stats_df <- as.data.frame(team_stats_general[[7]])
    
    team_stats_df$Name_abbreviation <- Names_abbrev
    
    team_stats_df$Name_abbreviation <- as.factor(team_stats_df$Name_abbreviation)
    
    team_stats_df <- team_stats_df[,c(10, 12:ncol(team_stats_df))]
    
  
  
  output$logoscatter <- renderPlot({
    
    req(input$x, input$y)
    
    plot_scale_x <- if (input$x %in% c("pctWins", "pctFG", "pctFG3", "pctFT", "pctFG2")){
      scale_x_continuous(labels = scales::percent_format(accuracy = 1))
    }else{
      scale_x_continuous()
    }
                          
    plot_scale_y <- if (input$y %in% c("pctWins", "pctFG", "pctFG3", "pctFT", "pctFG2")){
      scale_y_continuous(labels = scales::percent_format(accuracy = 1))
    }else{
      scale_y_continuous()
    }
    
    
    p1 <- ggplot(data = team_stats_df)+
      geom_smooth(aes_string(x = input$x, y = input$y), 
                  method = "lm", se = F, color = "black", linetype = "dashed")+
      geom_nba_logos(aes_string(x = input$x, y = input$y, team_abbr = "Name_abbreviation"), 
                     width = 0.075, height = 0.075)+
      stat_cor(aes_string(x = input$x, y = input$y, label="..rr.label.."),
               label.x.npc = 0.85, label.y.npc = 0.02, size = 6)+
      plot_scale_x+
      plot_scale_y+
      ylab(input$y)+
      xlab(input$x)+
      theme_bw()+
      theme(plot.title = element_text(hjust = 0.5),
            text = element_text(size = 18))
    
    p1
    
  })
  
  output$Table <- renderDT({
    
    team_stats_df
    
  })
  
  
}

shinyApp(ui = ui, server = server)

答案1

得分: 1

我已经困扰同一个问题好几周了,但一直无法解决。最后我尝试了手动下载数据作为 CSV 文件,然后在 ShinyApp 上上传。我发现当你下载所有数据时,文件超过了1GB,而我认为 Shiny 应用限制了数据大小为1GB。

也许这就是问题所在,因为我尝试了另一个包的数据,它可以正常工作,但是 nbastatR 却不行。

英文:

I have been working on the same problem for weeks and couldn't solve it so the last thing I tried was downloading the data manually as csv file and then upload on ShinyApp. And I figured out that when you download all the data, it goes over 1GB, and I think shiny app limits your data size by 1GB.

Maybe that could be the problem because I tried my code on other data from another package and it worked but nbastatR didn't

huangapple
  • 本文由 发表于 2023年2月16日 09:09:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/75466895.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定