r - 带有 Flexdashboard 的 Plotly 和 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
. 另请参见此处。
顺便说一句:我建议将问题一分为二,即问两个不同的问题。虽然这两个问题都与 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, 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.
### **Chart**
```{r}
ggplotly(ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Width)) + geom_point())
```
> **Option 3** 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.
### 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
)
)
推荐阅读
- typescript - 输入“承诺”
>' 缺少类型“ApolloQueryResult”的以下属性 ':数据,加载,网络状态,陈旧 - python - 我的素数列表模块有什么问题?
- java - 为什么我不能在方法中初始化变量?
- javascript - 如何在 HTML 中的 on-click js 函数中使用参数
- ios - Watch App 未安装复杂功能?
- python - 将标准定标器应用于投票分类器中的一个模型
- hyperledger-fabric - 如何在供应链上分配“药物”资产?
- php - 使用 php ZipArchive 下载多个文件
- powershell - 如何在 PowerShell 中将变量值设为 GB 或 TB
- reactjs - 在 React ComponentDidUpdate 中使用 SetInterval