У меня есть блестящее приложение ниже, в котором я хочу загрузить сюжетный график, используя downloadhandler()
.Но, как вы увидите, когда я запускаю приложение в веб-браузере и загружаю изображение, нижняя часть гистограммы отсутствует.Почему это происходит?Это можно исправить или загрузить альтернативно?Если вы удивляетесь, почему я использовал uiOutput()
для кнопки загрузки и набора данных фильмов, это потому, что так работает мое оригинальное и более сложное приложение.Прежде чем начать:
library(webshot)
install_phantomjs()
#uir.r
library(shiny)
library(plotly)
library(ggplot2movies) # movies is no longer contained within ggplot2 https://cran.r-project.org/web/packages/ggplot2movies/index.html
shinyUI(fluidPage(
titlePanel("Movie Ratings!"),
sidebarPanel(
uiOutput("down")
),
mainPanel(
plotlyOutput("trendPlot")
)
))
#server.r
library(shiny)
library(plotly)
library(ggplot2movies) # movies is no longer contained within ggplot2 https://cran.r-project.org/web/packages/ggplot2movies/index.html
shinyServer(function(input, output) {
output$down<-renderUI({
output$downloadData <- downloadHandler(
filename = function(){
paste0(paste0("pic"), ".png")
},
content = function(file) {
export(reg(), file=file)
})
downloadButton("downloadData", "Download")
})
reg<-reactive({
movies
# Create axes titles as lists
x <- list(
title = "A",
dtick = 5
)
y <- list(
title = "B"
)
# Create the plotly histogram
plot_ly(alpha = 0.9) %>%
add_histogram(x = as.factor(movies$rating)) %>%
# Add titles in plot and axes
layout(barmode = "overlay",title = "SAD",xaxis=x,yaxis=y)
})
output$trendPlot <- renderPlotly({
reg()
})
})
НЕПОЛНОЕ ИЗОБРАЖЕНИЕ