私はモデルを生成するためにdata.tree
とDiagrammeR
を使用するRMarkdownドキュメントを持っています。私は、これらたとえばHow to include DiagrammeR/mermaid flowchart in a Rmarkdown fileDiagrammeRグラフがrmarkdownにレンダリングされたときに呼び出されるknitrフックはどれですか?
に使用されるものにセットアップが似て使用して表示します。
```{r fig.cap="Structureel model bij enkelvoudige regressie.", fig.with=4, fig.height=1}
drawStructuralModel <- function(covariates, criterion) {
### Create tree
res <- Node$new(criterion);
for (covariate in covariates) {
res$AddChild(covariate);
}
### Set display settings
SetEdgeStyle(res, dir='back');
res <- ToDiagrammeRGraph(res, direction = "descend");
res <- add_global_graph_attrs(res, "layout", "dot", "graph");
res <- add_global_graph_attrs(res, "rankdir", "RL", "graph");
### Draw and return tree
render_graph(res);
}
drawStructuralModel("X", "Y");
```
これまでのところは良いです。キャプションテキストが追加されます。これはあなたが期待しているものです。
の上には、 'セットアップ' にknitrチャンク、私はuserfriendlyscience
からsetFigCapNumbering
を使用:-)除き
(https://github.com/Matherion/userfriendlyscience/blob/master/R/setFigCapNumbering.Rを参照してください)。この関数はknit_hooks$set
を使用してプロットのフックを設定するので、キャプションには自動的に番号が付けられます。
ただし、この番号はDiagrammeR
の出力には適用されません。
実際にプロットではなく、HTMLウィジェットやSVGなどであるので、意味があると思います。私はまだのように数字で番号を付けるのはです。
しかし、DiagrammeR
の出力が生成されたときに、どのフックknitr
が呼び出されるのかを確認するにはどうすればよいですか?
より一般的な「自動字幕」機能setCaptionNumbering
(https://github.com/Matherion/userfriendlyscience/blob/master/R/setCaptionNumbering.R)を使用することにいつも頼ることができ、その字幕と同じカウンターオプションを使用するように指示できます。これで問題は回避されますが、適切なknitr
フックを変更することをお勧めします。
そしてこの問題(あるフックでknitr
が特定の機能によって生成された出力に使用されているかどうかを調べること)が頻繁に発生するため、SA質問を開く価値があると思いました。
誰かがこれをどのように見つけられるか知っていますか?