在下面给出的r-markdown文档中,我使用选项卡部分来显示sankey图.
但是,当sankey绘图位于第一个以外的选项卡中时,调整(使用htmlwidgets::onRender功能)不起作用.有人知道克服这个问题的方法吗?
相关问题:如何在Sankey图中控制节点标签
---
title: "Untitled"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(networkD3)
library(htmlwidgets)
nodes <- data.frame('name' =
c('Node0','Node1','Node2','Node3','Node4','Node5','Node6',
'Node7','Node8','Node9','Node10','Node11','Node12','Node13',
'Node14','Node15','Node16','Node17','Node18','Node19',
'Node20','Node21','Node22','Node23','Node24','Node25',
'Node26','Node27','Node28','Node29','Node30','Node31',
'Node32','Node33'))
links = as.data.frame(matrix(c(
0, 3,140,
0, 4,140,
0, 5,140,
0, 6,140,
1, 3,140,
1, 4,140,
1, 5,140,
1, 6,140,
2, 3,140,
2, 4,140,
2, 5,140,
2, 6,140,
3, 7,130,
3, 8,130,
3, 9,50,
3,10,50,
3,11,50,
4,12,140,
4,13,100,
4,14,100,
4,15,80,
5,16,150,
5,17,150,
5,18,60,
5,19,60,
6,20,180,
6,21,80,
6,22,80,
6,23,80,
7,24,13, …Run Code Online (Sandbox Code Playgroud) 我找到了几个例子(如何使用 R 提取 SQL 文件的内容, 使用循环在 rmarkdown 中生成文本部分,使用 R在 Rmarkdown中 自动生成预格式化文本),但在我的情况下没有一个适用于嵌套部分,包括数字. 预期输出:
看来,我需要某种方法来处理包含的代码块(例如cat("```{r, fig.width=8.4, fig.height=7}\n") ... cat("```\n")正确处理,但我找不到方法。
编辑:我在这里找到了这个,但仍然无法使它工作
kexpand <- function(chunkname, fig.width, fig.height) {
cat(knitr::knit(text = knitr::knit_expand(text =
sprintf("```{r %s, fig.width=%s, fig.height=%s}\n.chunk_code\n",
chunkname, fig.width, fig.height))))
}
Run Code Online (Sandbox Code Playgroud)
然后在块中:
.chunk_code <- leaflet() %>%
addTiles() %>%
addProviderTiles(providers$OpenStreetMap, group = "OSM") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Toner Lite") %>%
addLayersControl(baseGroups = c("OSM", "Toner Lite")) %>%
addCircleMarkers(lat = 47, lng = 9, popup = ranges[i]) …Run Code Online (Sandbox Code Playgroud)