编织后 HTML 中的绘图颜色与 RStudio 中的不同

Plot colours in HTML differ from within RStudio after knit

我正在尝试生成可共享的 HTML 文档,该文档是从 RStudio 中的 R 脚本生成的。

该脚本使用从 networkD3collapsibleTree 包生成的交互图。在 RStudio 查看器中,这些图的配色方案非常明显;项目的颜色,例如蓝色和红色。

但是,当在 HTML 中呈现时,配色方案变成了褪色的灰色:在白色背景上几乎是白色,这使得它很难看清或使用。

我可以使用 knitr passthrough 在 RScript 中指定绘图颜色吗,我不知道,比如:

#+ colourscheme(RdBu)

或者我是否需要生成某种 CSS 文件来控制绘图颜色?我对这个 HTML 领域不是很清楚,也不是很了解,并且有点困惑为什么颜色会完全改变!

在此先感谢您的帮助。

-- 编辑(提供示例)

为了响应下面的请求,我生成了一个小示例。但是(!)当它被渲染时,它保留了正确的配色方案。我现在不清楚是什么原因造成的;颜色链接到我的主图中的 "gp",我只有 3 个组,所以应该看到 3 种颜色。由于大小(数据限制),我无法提供完整的示例,所以这里是大纲:

nodes <- data.frame(Name = c('Alpha', 'Beta', 'Charlie'),
                    ID = c(0,1,2),
                    gp = c(1,1,2),
                    n = c(10,15,20))

links <- data.frame(x = c(0, 0, 0, 1, 1, 2, 2),
                    y = c(0, 1, 2, 1, 2, 0, 2),
                    n = c(8, 9, 8, 9, 8, 9, 8))

require(networkD3)
require(RColorBrewer)

forceNetwork(height = 200, width = 400,
             Links = links, Nodes = nodes,
             Source = "x", Target = "y", Value = "n",  # From Links df
             NodeID = "Name", Group = "gp", Nodesize = "n",   # From Nodes df
             arrows = T,
             linkWidth = JS("function(d) { return Math.sqrt(d.value); }"),
             #linkWidth = JS(" d.value"),
             radiusCalculation = JS(" d.nodesize"),
             charge = -10,
             fontSize = 16,
             colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);"),
             opacity = 0.9,
             bounded = T)

我猜 (?) 有一组特定的条件会触发颜色失败。

我很确定会发生这种情况,因为 collapsibleTree 正在添加影响 forceNetwork 创建的元素的 CSS。你能试着把这个最小的例子放在一个 .Rmd 文件中并编织它看看是否显示类似的问题...

---
output: html_document
---

```{r echo=FALSE}
nodes <- data.frame(NodeID = c("Alpha", "Beta", "Charlie"),
                    Group = c(1, 2, 3),
                    Nodesize = c(10, 15, 20))

links <- data.frame(Source = c(0, 0, 1, 2),
                    Target = c(1, 2, 2, 0),
                    Value =  c(9, 8, 8, 9))

library(networkD3)
forceNetwork(Links = links, Nodes = nodes,
             Source = "Source", Target = "Target", Value = "Value",
             NodeID = "NodeID", Group = "Group", Nodesize = "Nodesize",
             colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);"),
             width = 100, height = 100)
```

```{r echo=FALSE}
library(collapsibleTree)
collapsibleTree(warpbreaks, c("wool", "tension", "breaks"), 
                width = 100, height = 100)
```

如果是这样,请尝试使用 devtools::install_github('AdeelK93/collapsibleTree') 安装 collapsibleTree 的开发版本,然后再试一次,看看问题是否消失(以及您的其他问题)。他们在尚未进入 CRAN 版本的 this commit 中添加了命名空间 css。