Горизонтальная полоса прокрутки Flexdashboard с таблицей данных - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь создать приборную панель с диаграммой в одном столбце и таблицей данных в другом.

Мне нужно, чтобы график был больше, чем DT, но DT перекрывает размер графика.

Вот пример:

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
runtime: shiny
---

<style> #dt{ overflow: auto; } </style>   


```{r setup, include=FALSE}
library(flexdashboard)
library(DT)
library(ggplot2)
library(plotly)
diamonds <-  diamonds[1:20,]
```



Column {data-width=900}
-----------------------------------------------------------------------
### Chart A 
```{r}
plot_ly(diamonds,
        x = ~ cut,
        y = ~ price,
        color = ~ clarity)
```

### Chart B 
```{r}
dt <- datatable(diamonds ,options = list(c(scrollY="200px", scrollX=TRUE, pageLength = 100)),  filter = 'top')
dt

Я экспериментировал с разными способами определения ширины данных, но пока ни один из них не работал.

Кто-нибудь знает, как я могу получить данные, чтобы иметь горизонтальную полосу прокрутки? Это возможно с flexdashboard?

Например, я хотел бы, чтобы в datatable отображалось только несколько столбцов, а пользователь мог прокручивать, чтобы увидеть остальные, так что график будет основным фокусом панели мониторинга.

1 Ответ

1 голос
/ 16 апреля 2019

Я немного отредактировал ваш код, и я думаю, что ниже приведена версия, к которой вы стремитесь. Я изменил следующее:


1. Удалил строку «Ориентация: строки» из определения заголовка.
2. Разделил графики на 2 отдельные колонки.
3. Изменено "vertical_layout: scroll" на "vertical_layout: fill" согласно комментарию Томаса Джона Флаэртиса выше.

Код теперь гласит:

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: fill
runtime: shiny
 ---

<style> #dt{ overflow: auto; } </style>   


```{r setup, include=FALSE}
library(flexdashboard)
library(DT)
library(ggplot2)
library(plotly)
diamonds <-  diamonds[1:20,]
```



Column {data-width=300}
-----------------------------------------------------------------------
### Chart A 
```{r}
plot_ly(diamonds,
        x = ~ cut,
        y = ~ price,
        color = ~ clarity)
```

Column {data-width=100}
-----------------------------------------------------------------------
### Chart B 
```{r}
dt <- datatable(diamonds ,options = list(c(scrollY="200px", scrollX=TRUE, pageLength = 100)),  filter = 'top')
dt
```
...