编辑看来问题与NetworkD3中缺少“调整大小”方法有关:https://github.com/rstudio/flexdashboard/issues/68#issuecomment-228521468
当我创建2个SankeyNetwork图并希望将它们显示在Flex Dashboard的不同页面上时,我遇到了一个问题。
第一个图表在第一页上加载没有问题 - 看起来应该完全正确。
然而,当我翻到第二页时,第二个SankeyNetwork情节被大幅放大 - 使其无法读取。单击“刷新”会自动修复绘图 - 将其恢复为正确的视角。然后 - 当我点击回到第一页时 - 该绘图以相同的方式放大。
我在第一页或第二页上放置哪个情节似乎并不重要...是否需要更改某种缓存设置?
修改 下面是示例代码 - 在RStudio中的FlexDashboard模板中创建,并利用NetworkD3创建者提供的SankeyNetwork示例。在此
---
title: "Example"
output:
flexdashboard::flex_dashboard
---
Page 1
==================
```{r setup, include=FALSE}
library(flexdashboard)
library(networkD3)
URL <- paste0(
"https://cdn.rawgit.com/christophergandrud/networkD3/",
"master/JSONdata/energy.json")
Energy <- jsonlite::fromJSON(URL)
# Plot
s1<-sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
units = "TWh", fontSize = 12, nodeWidth = 30)
```
### Page 1 {data-width=650}
```{r}
s1
```
Page 2
==================
### Page 2 {data-width=350}
```{r}
s1
```
答案 0 :(得分:2)
我相信这个pull request应该可以部分解决问题。请测试和验证。不幸的是,该解决方案需要一些权衡。我尝试在pull请求中讨论这些内容,但总的来说我的观点是非flexdashboard上下文应该占优势,所以我保留了viewBox
resize机制,只会在height
或width
为0.感谢您的提示。希望这对你有用。
这是live example。
答案 1 :(得分:0)
我怀疑这是flexdashboard
的问题,因为我遇到了同样的问题。见gist
更新:这是由于htmlwidget resize
函数没有得到适当的修正。 (我试图修复小部件)
答案 2 :(得分:0)
当我使用新列并设置大小时,此问题消失。我打赌这会解决你的问题
示例:
答案 3 :(得分:0)
我可以按照顶部帖子中描述的步骤来解决我的问题:
https://github.com/christophergandrud/networkD3/issues/122#issuecomment-228551872
在sankeyNetwork.js中注释掉viewBox代码,并取消注释调整大小功能代码