R Shiny HTML UI 无法正常工作
R Shiny HTML UI does not work properly
我想根据 this 的描述用 Rstudio Shiny 做一个完整的 HTML UI 但我有一个奇怪的问题:
当我尝试加载网页时,绘图不显示,但如果我首先加载 ui.r(完全等价uivalent)然后加载 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 graph,但出现了同样的问题。
D3 和 htmlwidgets 的 js 无法加载的问题(404 错误)。
您可以将所有需要的 js 复制到 www 并在 HTML 中更改路径
<script src="htmlwidgets.js"></script>
<script src="d3.min.js"></script>
<script src="forceNetwork.js"></script>
它解决了问题,但可能不是最好的主意
git 和 htmlwidgets
上的相同问题
更新
您可以在包文件夹中找到的文件:
对我来说:
......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) 看错误
我想根据 this 的描述用 Rstudio Shiny 做一个完整的 HTML UI 但我有一个奇怪的问题:
当我尝试加载网页时,绘图不显示,但如果我首先加载 ui.r(完全等价uivalent)然后加载 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 graph,但出现了同样的问题。
D3 和 htmlwidgets 的 js 无法加载的问题(404 错误)。
您可以将所有需要的 js 复制到 www 并在 HTML 中更改路径
<script src="htmlwidgets.js"></script>
<script src="d3.min.js"></script>
<script src="forceNetwork.js"></script>
它解决了问题,但可能不是最好的主意
git 和 htmlwidgets
更新
您可以在包文件夹中找到的文件: 对我来说:
......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) 看错误