2017-06-14 79 views
1

我使用FactorMineR軟件包構建了一個簡單的應用程序,根據所選變量進行MCA分析和聚類。shinyapps.io不繪製地塊

該應用可以在我的本地設備上正常工作,但它不會在shinyapps.io服務器上顯示任何情節(基本情節和ggplots)。我檢查了包裹,本地和遠程他們是一樣的。我還檢查了FactoMineR pcg的MCA()函數是否通過抽取一些結果並將它們呈現爲表格,從而得出了積極的結果。所以只有繪圖的問題。我一直試圖解決它兩天,但沒有任何幫助,所以我要求你提供任何建議。

下面是它的外觀本地:mca_locally

這裏是鏈接到應用程序:https://mikolajm.shinyapps.io/MCA_test/

而且重複的例子

library(shiny) 
library(FactoMineR) 
library(cluster) 
library(ggplot2) 
data(tea) 

ui <- fluidPage(

    # Application title 
    titlePanel("MCA"), 
    textOutput("packages"),br(), 
    tableOutput("table"),br(), 

    fluidRow(
    column(4, checkboxGroupInput("Variables", "Select variables:", 
           names(tea), selected=c("breakfast", "tea.time"))), 
    column(4, plotOutput("plot")), column(4, plotOutput("plot1"))), 
    fluidRow(column(12, plotOutput("dendro", height = "700px", width="1200px")) 
) 
) 

server <- function(input, output) { 

    ## packages checking 
    output$packages <- renderText({.packages()}) 
    tea_selected <- reactive({ 
    tea[, input$Variables] 
    }) 

    ## table with some results from MCA() fun 
    output$table <- renderTable({ 
    tea.mca <- MCA(tea_selected(), ncp=9) 
    tea.mca$eig[1:5,] 

    }) 

    ## mca1 
    output$plot <- renderPlot({ 
    library(FactoMineR) 
    par(mfrow=c(2,2)) 
    tea.mca <- MCA(tea_selected(), ncp=9) 
    }) 


    ## mca with ggplot 
    output$plot1 <- renderPlot({ 

    tea.mca <- MCA(tea_selected(), ncp=9) 
    tea_vars_df <- data.frame(tea.mca$var$eta2, Variable =names(tea_selected())) 

    library(ggplot2) 

    pp <- ggplot(data=tea_vars_df, aes(x=Dim.1, y=Dim.2, label=Variable))+ 
     geom_hline(yintercept = 0, colour = "gray70") + 
     geom_vline(xintercept = 0, colour = "gray70") + 
     geom_point()+ 
     geom_text() + 
     ggtitle("MCA plot of variables ")+ 
     theme_bw() 

    pp 
    }) 
    ### dendro 

    output$dendro <- renderPlot({ 
    library(FactoMineR) 
    library(cluster) 

    tea.mca <- MCA(tea_selected(), ncp=9) 
    classif <- agnes(tea.mca$ind$coord,method="ward") 
    plot(classif,main="Dendrogram",ask=F,which.plots=2) 
    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 
+0

您是否使用R代碼上傳數據?您能否顯示您用於上傳「app.R」和您的數據到shinyapps.io的命令?如果它在本地工作,最簡單的解釋是你缺少shinyapps.io上的數據。 – CPak

+0

我使用rstudio發佈按鈕上傳了我的代碼(在我的文章中)。數據(茶)包含在factominer包中。複選框從這些數據中導入變量,並且它們顯示在網頁上但不顯示。所以我認爲這不是數據問題。 – MikolajM

+0

每次在apps.io上運行時,R會話都必須運行它。你確定R閃亮服務器上的R環境有'FactoMineR'嗎?將'textOutput(「packages」)'添加到''ui'和'output $ packages < - renderText({。packages()})''到''server'。在本地嘗試,它應該打印在您的環境中加載的軟件包。然後在apps.io上試試... – CPak

回答

0

編輯:你可以看到曲線明顯,但

ORIGINAL
我在運行代碼時看不到您的閃亮應用中的圖塊。

一些挖後,我的猜測僅僅是:

你用了很多的附帶FactoMineR包功能。例如,使用output$plot1代碼塊中的函數MCA。在你的R命令行輸入MCA,它應該打印該功能。你可以看到MCA做了很多東西,並最終致電plot.MCA。現在在您的R命令行中鍵入plot.MCA。你可以看到plot.MCA有很多plot命令,我敢肯定當你撥打MCA時,它會執行所有的繪圖。我認爲你的問題是plot函數plot.MCA被髮送到圖形設備,並且這些圖不會被保存,即它們不是return()parent環境。 這只是猜測。

+0

我在帖子中添加了該應用的屏幕截圖。我將嘗試使用return()函數來解決它 – MikolajM

+0

對不起,我不知道......但是當我運行代碼時,我沒有看到這些圖。我會更新我的答案,以表明你可以看到情節,但我不能。 – CPak