ShinyApp中的渲染关联散点图

时间:2019-01-14 22:50:16

标签: r ggplot2 shiny cairoplot

当我尝试使用ggplot在Shiny应用中渲染相关散点图时,出现以下错误:Failed to create Cairo backend!

   output$model <- renderPlot({

      k <- dataIn()
      cormat <- round(cor(k),2)
      library(reshape2) 
      melted_cormat <- melt(cormat)

      wyk3 <- ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) 

      return(wyk3)
    }) 

这是我在控制台中看到的:

Warning: Error in Cairo: Failed to create Cairo backend!
  128: Cairo
  127: pngfun
  126: startPNG
  125: drawPlot
  111: <reactive:plotObj>
   95: drawReactive
   82: origRenderFunc
   81: output$model
    1: shiny::runApp

我不知道可能是什么问题,其他ggplot散点图本身正在正确渲染,还使用常规Rscript中的x11()来显示散点图。

您能帮我一下,并解释我在做什么问题吗?

'> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=Polish_Poland.1250  LC_CTYPE=Polish_Poland.1250    LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C                   LC_TIME=Polish_Poland.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] reshape_0.8.8   ggplot2_3.1.0   lattice_0.20-38 shiny_1.2.0    

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0       pillar_1.3.1     compiler_3.5.2   later_0.7.5      plyr_1.8.4      
 [6] bindr_0.1.1      tools_3.5.2      digest_0.6.18    jsonlite_1.6     tibble_2.0.1    
[11] gtable_0.2.0     pkgconfig_2.0.2  rlang_0.3.1      rstudioapi_0.9.0 yaml_2.2.0      
[16] bindrcpp_0.2.2   withr_2.1.2      dplyr_0.7.8      grid_3.5.2       tidyselect_0.2.5
[21] glue_1.3.0       R6_2.3.0         purrr_0.2.5      magrittr_1.5     scales_1.0.0    
[26] promises_1.0.1   htmltools_0.3.6  assertthat_0.2.0 mime_0.6         xtable_1.8-3    
[31] colorspace_1.3-2 httpuv_1.4.5.1   labeling_0.3     lazyeval_0.2.1   munsell_0.5.0   
[36] crayon_1.3.4     Cairo_1.5-9 

1 个答案:

答案 0 :(得分:0)

我参加聚会迟到了。 通常,此错误是由于 ui 中的某些问题而发生的。 我解决这个问题的方法是在ui中放入以下代码: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://getbootstrap.com/docs/4.0/examples/floating-labels/floating-labels.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <title>TEST</title> </head> <body> <form method="post" action="/form"> <div class="container-lg"> <div class="row"> <div class="card col-md-12"> <div class="card-header"> <h5>TEST TOP</h5> </div> </div> </div> <div class="row"> <div class="card col-md-6"> <div class="card-header"> <h5>TEST 1</h5> </div> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a class="nav-link active" data-toggle="tab" href="#menu0">V1</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#menu1">V2</a> </li> </ul> <div class="tab-content"> <div id="menu0" class="container tab-pane active"><br> <h6>Test card 1 Tab 1</h6><p><br></p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry</p> <div class="form-floating mb-3"> <input type="text" class="form-control" id="test0"> <label for="test0">TEST XY</label> </div> </div> <div id="menu1" class="container tab-pane fade"><br> <h6>Test card 2 Tab 2</h6><p><br></p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry</p> <div class="form-floating mb-3"> <input type="text" class="form-control" id="test1"> <label for="test1">TEST ZY</label> </div> </div> </div> </div> <div class="card col-md-6"> <div class="card-header"> <h5>TEST 2</h5> </div> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item" id="proviamo"> <a class="nav-link active" data-toggle="tab" href="#menu2">D1</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#menu3">D2</a> </li> </ul> <div class="tab-content"> <div id="menu2" class="container tab-pane active"><br> <h6>Test card 2 Tab 1</h6><p><br></p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry</p> <div class="form-floating mb-3"> <input type="text" class="form-control" id="test2"> <label for="test2">TEST AB</label> </div> </div> <div id="menu3" class="container tab-pane fade"><br> <h6>Test card 2 Tab 2</h6><p><br></p> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry</p> <div class="form-floating mb-3"> <input type="text" class="form-control" id="test3"> <label for="test3">TEST CD</label> </div> </div> </div> </div> </div> <div class="row"> <div class="card col-md-12"> <div class="tab-content"> <div class="card-header"> <h5>Send All Value</h5> </div> <div class="card-body"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry</p> <input type="submit" value="SEND" name="submit"> <p><br></p> </div> </div> </div> </div> </div> </form> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script> </body> </html> 。 使用 plotOutput('ggPlot',inline = F),我遇到了同样的错误。