我正在努力弄清楚如何使情节变得被动。我的代码的重点是,您与团队一起选择一个单选按钮,其中每个团队都是其自己的数据集,购买它们都具有相同的变量。我知道我可以将所有这些合并在一起,但是我担心这会减慢应用程序本身的速度,而且如果我继续努力并添加特定玩家统计信息,那么我相信我的当前方法是正确的方法。
我可以在闪亮的应用程序外部轻松打印表格,但不能在其中打印。
因此,总的来说,代码可以运行,但是不会显示该图,我想我已经看了太久了,有可能忽略了一个潜在的简单错误。
我正在使用的数据集来自NBAsavant.com (link to 76ers team data)
library(shiny)
library(plotly)
library(tidyverse)
library(rsconnect)
library(readr)
library(ggplot2)
library(dplyr)
library(jpeg)
library(grid)
library(RCurl)
ui <- fluidPage(
titlePanel("NBA 2017-2018 Season: Shooting Analysis"),
fluidRow(
column(2,
radioButtons(inputId = "radio", label = "Select NBA Team",
choices = c("76ers", "Bucks", "Bulls",
"Cavaliers", "Celtics", "Clippers",
"Grizzlies","Hawks","Heat",
"Hornets","Jazz","Kings",
"Knicks","Lakers","Magic",
"Mavericks","Nets","Nuggets",
"Pacers","Pelicans","Pistons",
"Raptors","Rockets","Spurs",
"Suns","Thunder","Timberwolves",
"Trail Blzers","Warriors","Wizards"),
selected = "76ers")
),
fluidRow(10,
box(width = 10,
plotOutput("court_plot")))
)
)
Server <- function(input, output) {
TeamNBA <- reactive({
if (input$radio == "76ers")
SeventySixers
else if (input$radio == "Bucks")
Bucks
else if (input$radio == "Bulls")
Bulls
else if (input$radio == "Cavaliers")
Cavaliers
else if (input$radio == "Celtics")
Celtics
else if (input$radio == "Clippers")
Clippers
else if (input$radio == "Grizzlies")
Grizzlies
else if (input$radio == "Hawks")
Hawks
else if (input$radio == "Heat")
Heat
else if (input$radio == "Hornets")
Hornets
else if (input$radio == "Jazz")
Jazz
else if (input$radio == "Kings")
Kings
else if (input$radio == "Knicks")
Knicks
else if (input$radio == "Lakers")
Lakers
else if (input$radio == "Magic")
Magic
else if (input$radio == "Mavericks")
Mavericks
else if (input$radio == "Nets")
Nets
else if (input$radio == "Nuggets")
Nuggets
else if (input$radio == "Pacers")
Pacers
else if (input$radio == "Pelicans")
Pelicans
else if (input$radio == "Pistons")
Pistons
else if (input$radio == "Raptors")
Raptors
else if (input$radio == "Rockets")
Rockets
else if (input$radio == "Spurs")
Spurs
else if (input$radio == "Suns")
Suns
else if (input$radio == "Thunder")
Thunder
else if (input$radio == "Timberwolves")
Timberwolves
else if (input$radio == "Trail Blazers")
TrailBlazers
else if (input$radio == "Warriors")
Warriors
else if (input$radio == "Wizards")
Wizards
})
output$court_plot <- renderPlot({
courtImg <- "http://robslink.com/SAS/democd54/nba_court_dimensions.jpg"
court <- rasterGrob(readJPEG(getURLContent(courtImg)),
width=unit(1, "npc"), height=unit(1, "npc"))
court_plot <- ggplot(TeamNBA, aes(x=x, y=y)) +
annotation_custom(court, -250, 250, -50, 420) +
geom_hex(bins = 50, alpha = .8) +
scale_fill_continuous(type = "viridis") +
xlim(-250, 250) +
ylim(-50, 420)
print(court_plot)
})
}
shinyApp(ui = ui, server = server)
答案 0 :(得分:0)
由于您没有提供数据,因此我以旧的mtcars
为例。
发出代码:
server
/ Server
(R区分大小写)TeamNBA()
scale_fill_continuous(type = "viridis")
使用的变量可能不在数据集中(听起来像iris
数据集中的变量),所以我将其删除了renderPlot
的末尾,请勿使用print
box
函数中的ui
library(shiny)
library(ggplot2)
library(jpeg)
library(grid)
library(RCurl)
ui <- fluidPage(
titlePanel("NBA 2017-2018 Season: Shooting Analysis"),
fluidRow(
column(2,
radioButtons(inputId = "radio", label = "Select NBA Team",
choices = c("76ers", "Bucks", "Bulls",
"Cavaliers", "Celtics", "Clippers",
"Grizzlies","Hawks","Heat",
"Hornets","Jazz","Kings",
"Knicks","Lakers","Magic",
"Mavericks","Nets","Nuggets",
"Pacers","Pelicans","Pistons",
"Raptors","Rockets","Spurs",
"Suns","Thunder","Timberwolves",
"Trail Blzers","Warriors","Wizards"),
selected = "76ers")
),
fluidRow(10,
plotOutput("court_plot"))
)
)
server <- function(input, output) {
TeamNBA <- reactive({
if (input$radio == "76ers")
mtcars
else if (input$radio == "Bucks")
Bucks
else if (input$radio == "Bulls")
Bulls
else if (input$radio == "Cavaliers")
Cavaliers
else if (input$radio == "Celtics")
Celtics
else if (input$radio == "Clippers")
Clippers
else if (input$radio == "Grizzlies")
Grizzlies
else if (input$radio == "Hawks")
Hawks
else if (input$radio == "Heat")
Heat
else if (input$radio == "Hornets")
Hornets
else if (input$radio == "Jazz")
Jazz
else if (input$radio == "Kings")
Kings
else if (input$radio == "Knicks")
Knicks
else if (input$radio == "Lakers")
Lakers
else if (input$radio == "Magic")
Magic
else if (input$radio == "Mavericks")
Mavericks
else if (input$radio == "Nets")
Nets
else if (input$radio == "Nuggets")
Nuggets
else if (input$radio == "Pacers")
Pacers
else if (input$radio == "Pelicans")
Pelicans
else if (input$radio == "Pistons")
Pistons
else if (input$radio == "Raptors")
Raptors
else if (input$radio == "Rockets")
Rockets
else if (input$radio == "Spurs")
Spurs
else if (input$radio == "Suns")
Suns
else if (input$radio == "Thunder")
Thunder
else if (input$radio == "Timberwolves")
Timberwolves
else if (input$radio == "Trail Blazers")
TrailBlazers
else if (input$radio == "Warriors")
Warriors
else if (input$radio == "Wizards")
Wizards
})
output$court_plot <- renderPlot({
courtImg <- "http://robslink.com/SAS/democd54/nba_court_dimensions.jpg"
court <- rasterGrob(readJPEG(getURLContent(courtImg)),
width=unit(1, "npc"), height=unit(1, "npc"))
court_plot <- ggplot(TeamNBA(), aes(x=mpg, y=wt)) +
annotation_custom(court, -250, 250, -50, 420) +
geom_hex(bins = 50, alpha = .8) +
xlim(-250, 250) +
ylim(-50, 420)
court_plot
})
}
shinyApp(ui = ui, server = server)
注意:我将aes
更改为与mtcars
一起使用,您必须对其进行调整