1

编辑看来问题与 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
```
4

4 回答 4

2

我相信这个拉取请求应该可以部分解决问题。请测试和验证。不幸的是,该解决方案需要一些折衷。我试图在拉取请求中讨论这些,但总的来说,我的观点是非 flexdashboard 上下文应该占上风,所以我保留了调整大小机制,只有在或为 0viewBox时才会呈现。感谢提示。希望这对你有用。heightwidth

这是一个活生生的例子

于 2016-07-02T13:24:21.037 回答
1

我怀疑这是一个问题,flexdashboard因为我遇到了同样的问题。见要点

更新:这是由于resize没有正确实现 htmlwidget 功能。(我正在尝试修复小部件)

于 2016-06-25T08:02:37.397 回答
0

当我使用新列并设置大小时,这个问题就消失了。我打赌这会解决你的问题

例子:

列 {data-width=650}

于 2016-06-28T23:54:19.380 回答
0

我可以按照此处顶部帖子中描述的步骤解决我的问题:

https://github.com/christophergandrud/networkD3/issues/122#issuecomment-228551872

注释掉sankeyNetwork.js中的viewBox代码,去掉resize函数代码的注释

于 2016-06-30T15:29:57.237 回答