【问题标题】:R Shiny HTML UI does not work properlyR Shiny HTML UI 无法正常工作
【发布时间】:2017-01-12 06:03:23
【问题描述】:

我想根据this 描述用 Rstudio Shiny 制作一个完整的 HTML UI,但我有一个奇怪的问题:

当我尝试加载网页时,绘图不会显示,但如果我首先加载 ui.r(完全等效),然后再次加载 HTML ui,它就可以工作。

这是一个最小的例子:

# server.r
# This is always the same with ui.r and also with HTML UI

library(shiny)
library(networkD3)

data(MisLinks)
data(MisNodes)

server <- function(input, output) {

  output$force <- renderForceNetwork({
    forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
                 Target = "target", Value = "value", NodeID = "name",
                 Group = "group", opacity = 1)
  })

}

然后:

<!--this is the HTML UI-->
<!DOCTYPE html>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  <script type="application/shiny-singletons"></script>  <script type="application/html-dependencies">json2[2014.02.04];jquery[1.11.3];shiny[0.13.2];htmlwidgets[0.6];d3[3.5.2];forceNetwork-binding[0.2.13];bootstrap[3.3.5]</script><script src="shared/json2-min.js"></script>
<script src="shared/jquery.min.js"></script>
<link href="shared/shiny.css" rel="stylesheet" />
<script src="shared/shiny.min.js"></script>
<script src="htmlwidgets-0.6/htmlwidgets.js"></script>
<script src="d3-3.5.2/d3.min.js"></script>
<script src="forceNetwork-binding-0.2.13/forceNetwork.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="shared/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<script src="shared/bootstrap/js/bootstrap.min.js"></script>
<script src="shared/bootstrap/shim/html5shiv.min.js"></script>
<script src="shared/bootstrap/shim/respond.min.js"></script>

</head>

<body>
  <div class="container-fluid">
    <div id="force" style="width:100%; height:500px; " class="forceNetwork html-widget html-widget-output"></div>
  </div>
</body>

</html>

网络图不显示给我。 但如果我先运行它,然后运行 ​​HTML UI,它就可以工作:

# ui.r
# this is the equivalent version of HTML UI
library(shiny)

ui <- fluidPage(
  forceNetworkOutput("force")
) 

我也尝试过使用 visNetwork 图,但出现了同样的问题。

【问题讨论】:

    标签: javascript html r shiny networkd3


    【解决方案1】:

    D3的js和htmlwidgets不加载的问题(404错误)。

    您可以将所有需要的 js 复制到 www 并更改 HTML 中的路径

    <script src="htmlwidgets.js"></script>
    <script src="d3.min.js"></script>
    <script src="forceNetwork.js"></script>
    

    它可以解决问题,但它可能不是最好的主意

    githtmlwidgets 存在同样的问题

    更新

    您可以在包文件夹中找到的文件: 对我来说:

    ......R\R-3.2.5\library\htmlwidgets\www\
    ......R\R-3.2.5\library\networkD3\htmlwidgets\
    ......R\R-3.2.5\library\networkD3\htmlwidgets\lib\d3-3.5.2
    

    如何检查问题是否与js有关

    1) 运行应用程序

    2) 右键单击​​ + 检查

    3) 外观错误

    【讨论】:

    • 不确定我是否完全理解您的解决方案。在哪里可以找到这些 js 文件?
    • 谢谢,我会尽快检查。还有一个问题:您如何检查问题是“D3 的 js 和 htmlwidgets 未加载(404 错误)”。 ?
    • 仍然不起作用当我执行您所写的操作时出现以下错误消息:“TypeError: undefined is not an object (evaluating 'data.jsHooks.render')”
    • UPDATE 我更新了R和Rstudio,现在出现了,但是没有链接,只有节点可见。
    • 我无法重现您的错误,对我来说它的工作原理,我看到的结果与fluidPage( forceNetworkOutput("force") )
    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2015-10-20
    • 1970-01-01
    相关资源
    最近更新 更多