HTML中的绘图颜色与编织

时间:2018-05-04 09:23:52

标签: html r rstudio knitr networkd3

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

该脚本使用从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)

我猜测(?)是否存在触发颜色失败的某些条件。

1 个答案:

答案 0 :(得分:1)

我很确定会发生这种情况,因为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)
```

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