Fă graficul interactiv
plotly este un pachet popular pentru crearea de grafice interactive în Shiny. Există și alte pachete pentru vizualizări interactive, însă vom folosi plotly în principal datorită funcției sale ggplotly(), care convertește un grafic ggplot2 într-unul interactiv.
Acest exercițiu face parte din cursul
Studii de caz: Construirea aplicațiilor web cu Shiny în R
Instrucțiuni pentru exercițiu
Codul aplicației Shiny din exercițiul anterior este deja disponibil. Sarcina ta este să înlocuiești graficul ggplot2 cu unul plotly. Mai concret:
- Încarcă pachetul
plotly. - Înlocuiește funcția de afișare a graficului cu
plotlyOutput(linia 20). - Înlocuiește funcția de randare a graficului cu
renderPlotly(linia 29). - Convertește graficul
ggplot2existent într-un graficplotly(linia 31).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Load the plotly package
___
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("title", "Title", "GDP vs life exp"),
numericInput("size", "Point size", 1, 1),
checkboxInput("fit", "Add line of best fit", FALSE),
colourInput("color", "Point color", value = "blue"),
selectInput("continents", "Continents",
choices = levels(gapminder$continent),
multiple = TRUE,
selected = "Europe"),
sliderInput("years", "Years",
min(gapminder$year), max(gapminder$year),
value = c(1977, 2002))
),
mainPanel(
# Replace the `plotOutput()` with the plotly version
plotOutput("plot")
)
)
)
# Define the server logic
server <- function(input, output) {
# Replace the `renderPlot()` with the plotly version
output$plot <- renderPlot({
# Convert the existing ggplot2 to a plotly plot
___({
data <- subset(gapminder,
continent %in% input$continents &
year >= input$years[1] & year <= input$years[2])
p <- ggplot(data, aes(gdpPercap, lifeExp)) +
geom_point(size = input$size, col = input$color) +
scale_x_log10() +
ggtitle(input$title)
if (input$fit) {
p <- p + geom_smooth(method = "lm")
}
p
})
})
}
shinyApp(ui = ui, server = server)