Макет в Flexdashboard / R Markdown - PullRequest
       1

Макет в Flexdashboard / R Markdown

0 голосов
/ 19 октября 2019

Я редактировал этот вопрос, потому что я нашел способ, который похож на то, что я хотел. Но в приведенном ниже примере на вкладке «Производительность» можно сделать так, чтобы ggplot отображался рядом с таблицей? (Подобно этому)

enter image description here

Ниже приведен пример кода

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    runtime: shiny
    source_code: embed
    theme: cosmo
    storyboard: TRUE
---


```{r setup, include=FALSE}
library(flexdashboard)
library(readxl)
library(tidyverse)
library(ggplot2)
library(shiny)
library(knitr)
library(kableExtra)
```

```{r}
dt <- mtcars[1:5, 1:6]
Performance <- structure(list(Mills = c("Mill-A", "Mill-B", "Mill-C", "Mill-D", 
"Mill-E"), Performance = c(0.5, 0.4, 0.2, 0.9, 0.4)), row.names = c(NA, 
-5L), class = "data.frame")
```


Summary
=================

Inputs {.sidebar}
-----------------------------------------------------------------------
```{r}

```


Column {data-width=300}
-----------------------------------------------------------------------

### Chart A

```{r}

```

Row {.tabset .tabset-fade}
-----------------------------------------------------------------------

### Performance {data-height=2000}


```{r}
dt %>%
  kable() %>%
  kable_styling()
ggplot(data = Performance,aes(x=Mills,y=Performance))+geom_bar(stat = "identity")
```


### Parameters {data-height=1000}

```{r}

```

Forecasting
=================

Inputs {.sidebar}
-----------------------------------------------------------------------

```{r}

```

Column {data-height=1000}
-----------------------------------------------------------------------

### Chart A

```{r}

```

Есть ли способ достичь этого? .. .................................................. ...................

1 Ответ

0 голосов
/ 20 октября 2019

Фон

По моему опыту, FlexDashboard дает вам только определенную степень контроля. Чтобы получить больше контроля, вы можете создать один графический объект и затем передать его в одну «точку» FlexDashboard.

  • Преимущество - это высокая степень настройки, которую вы можете иметь.
  • Недостатки заключаются в том, что это еще один шаг, и масштабирование теперь становится немного сложным для управления.

Таблица может быть настоящим подстановочным знаком здесь,Может быть трудно заставить объект tableGrob() выглядеть и масштабироваться так, как вы хотите.

Есть также некоторые известные проблемы. Например, при textGrob(), когда вы пытаетесь выровнять текст по левому краю, он выравнивает по центру текста по левому краю, удаляя половину текста из вашего изображения.

Пример

Мы будемиспользуйте набор данных mtcars для создания заголовка, двух графиков и одной таблицы. Из этого примера видно, что графики и таблицы могут быть полностью независимы друг от друга.

Затем мы будем использовать ggplot2, grid и gridExtra, чтобы выровнять их в сетке 3x2. Наш макет будет следующим:

Plot layout

library(ggplot2)
library(grid)
library(gridExtra)

Еще один полезный пакет для этого типа вещей - cowplot.

Создание графиков

dat <- mtcars

plot1 <- ggplot(mtcars, aes(x = hp, y = mpg)) +
  geom_point()

plot2 <- ggplot(mtcars, aes(x = wt)) +
  geom_histogram()

table1 <- tableGrob(head(dat), theme = ttheme_default(base_size = 10))

title <- textGrob("Combined Charts", gp = gpar(fontsize = 24, fontfamily = "sans"))

Комбинирование графиков

grid_layout <- rbind(c(1, 1),
                     c(2, 3),
                     c(4, 4))

group1 <- grid.arrange(title, plot1, table1, plot2,
                       layout_matrix = grid_layout,
                       heights= c(1, 4, 4))

grid.draw(group1)

Combined plots

FlexDashboard

Затем вы взяли бы это вместеобъект и добавить его обратно в файл FlexDashboard. Вот фрагмент из вашего примера.

### Performance {data-height=2000}

```{r}

grid.draw(group1)

```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...