Description
Add a Download Button to a 'shiny' Plot or 'plotly'.
Description
Add a download button to a 'shiny' plot or 'plotly' that appears when the plot is hovered. A tooltip, styled to resemble 'plotly' buttons, is displayed on hover of the download button. The download button can be used to allow users to download the dataset used for a plot.
README.md
shinydlplot
Installation
remotes::install_github('alexvpickering/shinydlplot)
Usage
Example that renders a plotly
with a download button to download the iris dataset:
library(shiny)
library(shinyjs)
library(shinydlplot)
library(plotly)
ui <- fluidPage(
useShinyjs(),
downloadablePlotlyUI(id = 'iris_plotly')
)
server <- function(input, output, session) {
plot <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length)
callModule(downloadablePlotly,
id = 'iris_plotly',
plot = plot,
filename = 'iris.csv',
content = function(file) {write.csv(iris, file)})
}
shinyApp(ui, server)
Example that renders a ggplot2
object with a download button to download the iris dataset:
library(shiny)
library(shinyjs)
library(shinydlplot)
library(ggplot2)
ui <- fluidPage(
useShinyjs(),
downloadablePlotUI(id = 'iris_plot')
)
server <- function(input, output, session) {
plot <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point()
callModule(downloadablePlot,
id = 'iris_plot',
plot = plot,
filename = 'iris.csv',
content = function(file) {write.csv(iris, file)})
}
shinyApp(ui, server)