2016-02-20 31 views
1

我對R相對較新,對Shiny很新,但是我一直無法找到有關此錯誤的信息。使用showoutput和多個圖表時閃亮不輸出

我創建了兩個圖表,一個使用d3heatmap,另一個使用leaflet。當我單獨運行這些腳本時,它們都可以工作。我遵循指示並使用boostrapPage()將兩張圖顯示在一起,閃亮。

代碼可以在這裏找到:https://github.com/jotasolano/dengueCR,但我會貼在下面。我得到的應該顯示圖表(不是在控制檯),在彈出的窗口中的錯誤信息

ERROR: path[1]="": No such file or directory

。任何想法爲什麼發生這種情況?

server.R:

library(dplyr) 
library(d3heatmap) 
library(RColorBrewer) 
library(shiny) 
library(leaflet) 
library(rCharts) 

function(input, output, session) { 
    output$heatmap <- renderD3heatmap({ 

    #convert to df and drop total 
    cases <- read.csv("casos_2015.csv") %>% 
     select(-Total) %>% 
     select(-Semana) 


    d3heatmap(cases, scale = "row", 
       dendrogram = "none", 
       color = scales::col_quantile("Reds", NULL, 10), 
       xaxis_font_size = "10px", 
       show_grid = 0.2) 
    }) 

    output$geomap <- renderPlot({ 
    data <- read.csv("cantones.csv") 

    casos_popup <- paste0("<strong>Canton: </strong>", data$canton, 
          "<br><strong>Cases: </strong>", data$casos, 
          "<br><strong>Rate: </strong>", signif(data$tasa, 3)) 

    m <- leaflet(data) %>% 
     addProviderTiles("CartoDB.Positron") %>% 
     addCircles(~lng, 
        ~lat, 
        popup = casos_popup, 
        radius = ~sqrt(casos) * 300, 
        weight = 1, 
        color = "red") 
    }) 
} 

ui.R:

library(shiny) 
library(d3heatmap) 
library(leaflet) 
library(rCharts) 

bootstrapPage(mainPanel(width = 12, 
    div(class = "row", 
     div(showOutput("heatmap", "d3heatmap"), class = "span6"), 
     div(showOutput("geomap", "leaflet"), class = "span6") 
) 
)) 

另外,如果你看到任何可怕的做法,請隨時注意,因爲就像我說的,我是比較新有時文檔很亂。

謝謝!

+0

附:我遵循這些說明http://stackoverflow.com/questions/21895321/shiny-rcharts-multiple-chart-output – JotaSolano

回答

1

我認爲你正在使用一些過時的功能。 leaflet和d3heatmap都有自己的基於htmltools的渲染/輸出函數。你的用戶界面更改爲

bootstrapPage(mainPanel(width = 12, 
    div(class = "row", 
    div(d3heatmapOutput("heatmap"), class = "span6"), 
    div(leafletOutput("geomap"), class = "span6") 
) 
)) 

我也將採取的reactives以外的數據處理,因爲它不會改變,無論是把它在你的服務器或可以被啓動時讀取global.R。

有了這些小器官功能障礙綜合徵,你的服務器可能是

library(dplyr) 
library(d3heatmap) 
library(RColorBrewer) 
library(shiny) 
library(leaflet) 
library(rCharts) 

cases <- read.csv("casos_2015.csv") %>% 
    select(-Total) %>% 
    select(-Semana) 

## I would add the labels here as well unless those are subject to change 
data <- read.csv("cantones.csv") 

function(input, output, session) { 

    output$heatmap <- renderD3heatmap({ 

    d3heatmap(cases, scale = "row", 
       dendrogram = "none", 
       color = scales::col_quantile("Reds", NULL, 10), 
       xaxis_font_size = "10px", 
       show_grid = 0.2) 
    }) 

    output$geomap <- renderLeaflet({ 
    casos_popup <- paste0("<strong>Canton: </strong>", data$canton, 
          "<br><strong>Cases: </strong>", data$casos, 
          "<br><strong>Rate: </strong>", signif(data$tasa, 3)) 

    m <- leaflet(data) %>% 
     addProviderTiles("CartoDB.Positron") %>% 
     addCircles(~lng, 
        ~lat, 
        popup = casos_popup, 
        radius = ~sqrt(casos) * 300, 
        weight = 1, 
        color = "red") 
    m 
    }) 
} 
+0

這很好!非常感謝。那麼現在每個軟件包都有自己的'packageOutput'功能? 此外,這不完全相關,但我得到另一個下面的一個圖表,而不是一個旁邊的另一個。任何想法爲什麼發生這種情況?我只使用一行。這是一個屏幕上限http://imgur.com/nOgDBRw – JotaSolano

+0

此外,謝謝你的提示。 – JotaSolano

+0

太棒了,它效果很好。令人惱火的是,遵循過時的文檔,即使[官方文檔](http://shiny.rstudio.com/articles/layout-guide.html)使用'shinyUI()',但IDE告訴我它已經過時。再次感謝! – JotaSolano