我创建了一个Shiny应用程序,其中包含一些Plotly对象。在RStudio中预览时,一切正常。但是,当我将应用程序部署到Shiny服务器(内部部署)并打开应用程序时,图表未显示。在浏览器(Chrome或Safari)中查看开发者控制台时,我看到以下错误Can't find variable: Plotly
指向了plotly.js的第141行,在以下代码中为var plot = Plotly.plot(graphDiv, x)
:
//if no plot exists yet, create one with a particular configuration
if (!instance.plotly) {
var plot = Plotly.plot(graphDiv, x);
instance.plotly = true;
instance.autosize = x.layout.autosize || true;
instance.width = x.layout.width;
instance.height = x.layout.height;
我在Chrome和Safari中对此进行了测试,并且它在两种浏览器中都有效,但是当我在Chrome中刷新页面时,这些图表有时会起作用。
因此,为了进一步测试,我从Plotly网站获取了this code,并将其部署到我们的Shiny服务器环境中,以查看是否发生了相同的行为,情况就是如此。因此我不认为我犯了编码错误。
我正在使用以下软件包版本:
有谁知道如何解决这个问题?我是否遗漏了一些软件包,或者是否需要在Shiny服务器中配置某些内容才能使其正常工作?
谢谢!
答案 0 :(得分:0)
我认为您可能需要的是renderPlotly而不是服务器中的renderPlot。如果执行此操作,则该图将显示在查看器上,但不会显示在闪亮的弹出窗口(空白图)中,并且在部署时将无法使用。将renderPlot替换为renderPlotly的一个示例是:
ui <- dashboardPage(skin = "blue",
dashboardHeader(title= "Fig. 11: State Forecasting and Nowcasting", titleWidth = 450),
dashboardSidebar(disable=TRUE),
dashboardBody(
fillPage(padding = 0,
box(title="", id="normal", solidHeader = TRUE, status = "primary", width=7,
plotlyOutput("plot1", height = 250)),
box(title="State to Examine", background = "black", width=5,
selectInput("variable", "State:", choices= sort(unique(afteradd2$State)), selected="Ohio")),
box(title="Forecast Length", background = "black", width=5,
selectInput("variable.two", "Forecast:", choices= c("Nowcast", "Three Month Forecast",
"Six Month Forecast"), selected="Nowcast"))
)))
server <- function(input, output) {
output$plot1<- renderPlotly({
par(mfrow=c(1,1))
par(mar = c(4, 5, 4, 4))
fstate(input$variable, input$variable.two)})}
shinyApp(ui=ui, server=server)
尽管看不到您的代码,但是很难确定。如果这不是您的问题,可以共享您的代码,以便我提供帮助吗?