GGPlot в пределах l oop во Flexdashboard - PullRequest
1 голос
/ 20 февраля 2020

Используя Flexdashboard, я хочу поместить некоторый текст и график в al oop - он должен l oop через переменные, и я не знаю, сколько их будет. Но графики появляются рядом, а не вниз по странице, и текст теряется.

Пример:

---
title: "Cars Test"
output: flexdashboard::flex_dashboard
---

```{r}
library(ggplot2)

data(cars)

for(var in names(cars)) {
 htmltools::tags$p(var)
 print(ggplot(cars, aes_string(var)) +
   geom_histogram())
}

```

Дает мне:

Plot of two histograms, side by side, no text.

Если я не л oop и вместо этого просто запустите код для каждой переменной:

---
title: "Cars Test"
output: flexdashboard::flex_dashboard
---

```{r}
library(ggplot2)
data(cars)

var <- "speed"
  htmltools::tags$p(var)
  print(ggplot(cars, aes_string(var)) +
   geom_histogram())

var <- "dist"
  htmltools::tags$p(var)
  print(ggplot(cars, aes_string(var)) +
   geom_histogram())

```

Я получаю то, что ожидаю:

Two histograms, one of top of other, with text.

Что это такое? Я жду.

есть ли способ получить (что-то вроде) вторую страницу, используя первый код.

1 Ответ

1 голос
/ 20 февраля 2020

У меня проблемы с получением того же внешнего вида, но если вы согласны с именем переменной, имеющей отступ вместе с диаграммой, это может сработать:

---
title: "Cars Test"
output: flexdashboard::flex_dashboard
---

```{r}
library(tidyverse)
data(cars)

car_plots <- names(cars) %>% 
  set_names() %>% 
  map(~ ggplot(cars, aes(!! sym(.x))) + geom_histogram() + ggtitle(.x))

walk(names(cars), ~ print(car_plots[[.x]]))
```

In в этом случае имя переменной отображается в качестве заголовка диаграммы, поэтому она заканчивается с отступом.

enter image description here

...