Диаграммы русалок не отображаются правильно в презентациях Rmarkdown xaringan - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь сделать несколько простых потоковых диаграмм в html-презентации Rmarkdown, которую я рендеринга с помощью xaringan. Я рисую диаграммы русалок, используя пакет DiagrammeR. Однако, хотя диаграммы правильно отображаются в средстве просмотра Rstudio, стиль не отображается в выходных данных презентации.

Например,

DiagrammeR::mermaid("
graph LR;
A((Orange)) --> B((Grey));

classDef orange fill:#f96;
classDef grey fill:#d3d3d3;
class A orange;
class B grey;
")

создает один оранжевый узел и один серый узел, как и ожидалось при запускена консоли. Однако

---
title: "Simple Example" 
output: 
  xaringan::moon_reader
---


```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
```

## Flow chart

```{r example, fig.align='center', fig.retina=3}
DiagrammeR::mermaid("
graph LR;
A((Orange)) --> B((Grey));

classDef orange fill:#f96;
classDef grey fill:#d3d3d3;
class A orange;
class B grey;
")
```

создает потоковую диаграмму в цветах русалки по умолчанию, игнорируя стилизацию.

Кто-нибудь знает обходной путь для этого? Я также был бы открыт для предложений других пакетов для рисования простых древовидных диаграмм.

1 Ответ

1 голос
/ 06 ноября 2019

Русалка создает htmlwidget в качестве вывода. Вы должны обернуть его в <iframe> раздел. Пакет widgetframe может сделать это для вас, другие приложения на основе htmlwidget, такие как DT, leaflet, Dygraph, могут быть встроены в xaringan с помощью этого метода.

---
title: "Simple Example" 
output: 
  xaringan::moon_reader
---


```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
```

## Flow chart

```{r example, fig.align='center', fig.retina=3}

suppressPackageStartupMessages(library(widgetframe))


l=DiagrammeR::mermaid("
graph LR;
A((Orange)) --> B((Grey));

classDef orange fill:#f96;
classDef grey fill:#d3d3d3;
class A orange;
class B grey;
")

widgetframe::frameWidget(l)
```
...