如何解决带Flexdashboard的绘图表和DT表
我在flexdashboard
中放置绘图和表格时遇到困难。这是一个代表:
---
title: "FlexDashboard"
output:
flexdashboard::flex_dashboard:
orientation: column
---
```{r setup,include=FALSE}
library("flexdashboard")
library("dplyr")
library("ggplot2")
library("plotly")
library("DT")
```
```{r}
library(datasets)
data(iris)
iris <- iris
```
Column {data-width=500}
-----------------------------------------------------------------------
### **Chart**
Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labor et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
```{r,fig.height=3,fig.width=8}
ggplotly(ggplot(data = iris,aes(x = Sepal.Length,y = Petal.Width)) + geom_point())
```
### Chart B
```{r}
```
Column {data-width=500}
-----------------------------------------------------------------------
### Chart B
```{r}
iris %>%
datatable(
rownames = FALSE,class = 'cell-border stripe',extensions = c('Buttons','KeyTable'),options = list(dom = 't',autoWidth = TRUE,buttons = c('copy','excel','print'),keys = TRUE)
)
```
有两个问题:
- 绘图被切除。我试着玩
fig.width
和fig.height
都没用。 - DT表不显示按钮,并且标题行未对齐
解决方法
绘图图被截断的问题是在一个“容器”中将文本与图表混合。每个容器只能包含“一个”内容。
如果要在仪表板上添加文本,可以将其放在页面顶部(选项1)在列顶部(选项2),也可以将其作为文本注释添加到图表下方(选项3)。下面的代码显示了这三个选项的示例。当然,选项4是为文本和图表提供单独的容器。
关于第二个数据表问题。由于autoWidth=TRUE
导致出现对齐问题。利用这些信息,我在互联网上进行了搜索。不幸的是,除了设置autoWidth=FALSE
之外,我无法提出解决方案。另请参见here。
顺便说一句:我建议将这个问题一分为二,即问两个不同的问题。虽然这两个问题都与flexdahsboard有关,但问题却大不相同。分别关注每个问题将使其更容易回答,使其他人更容易找到问题和可能的答案,从而使示例最小化,……
---
title: "FlexDashboard"
output:
flexdashboard::flex_dashboard:
orientation: column
---
```{r setup,include=FALSE}
library(flexdashboard)
library(dplyr)
library(ggplot2)
library(plotly)
library(DT)
```
**Option 1** Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labor et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Column {data-width=500}
-----------------------------------------------------------------------
**Option 2** Lorem ipsum dolor sit amet,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
### **Chart**
```{r}
ggplotly(ggplot(data = iris,aes(x = Sepal.Length,y = Petal.Width)) + geom_point())
```
> **Option 3** Lorem ipsum dolor sit amet,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
### Chart B
```{r}
```
Column
-----------------------------------------------------------------------
### Chart B
```{r}
iris %>%
datatable(
rownames = FALSE,class = 'cell-border stripe',extensions = c('Buttons','KeyTable'),options = list(dom = 't',autoWidth = TRUE,columnDefs = list(
list(className = 'dt-center',targets = 0:4)),buttons = c('copy','excel','print'),keys = TRUE
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。