Flexdashboard/R标记中的布局
我编辑了这个问题,因为我找到了一种与我想要的相似的方法。但在下面的示例中,在“性能”选项卡下,我可以使ggplot显示在表格旁边吗?(与此类似) 下面是示例代码Flexdashboard/R标记中的布局,r,R,我编辑了这个问题,因为我找到了一种与我想要的相似的方法。但在下面的示例中,在“性能”选项卡下,我可以使ggplot显示在表格旁边吗?(与此类似) 下面是示例代码 --- title: "Untitled" output: flexdashboard::flex_dashboard: orientation: rows vertical_layout: scroll runtime: shiny source_code: embed theme: c
---
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}
```
---
标题:“无标题”
输出:
flexdashboard::flex_仪表板:
方向:行
垂直布局:滚动
运行时间:闪亮
源代码:嵌入
主题:宇宙
故事板:真的
---
```{r设置,include=FALSE}
库(flexdashboard)
图书馆(readxl)
图书馆(tidyverse)
图书馆(GG2)
图书馆(闪亮)
图书馆(knitr)
图书馆(kableExtra)
```
```{r}
dt%
kable_造型()
ggplot(数据=性能,aes(x=磨坊,y=性能))+geom_bar(stat=“identity”)
```
###参数{数据高度=1000}
```{r}
```
预测
=================
输入{.sidebar}
-----------------------------------------------------------------------
```{r}
```
列{数据高度=1000}
-----------------------------------------------------------------------
###图表A
```{r}
```
有没有办法做到这一点?背景
根据我的经验,FlexDashboard只提供一定程度的控制。要获得更多控制,可以创建单个图形对象,然后将其传递到单个FlexDashboard“点”
- 的优点是您可以进行高度定制
- 的缺点是这是另一个步骤,现在扩展变得有点棘手
tableGrob()
对象按照您希望的方式进行查看和缩放
还有一些已知的问题。例如,使用textGrob()
,当您尝试左对齐文本时,它将左对齐文本的中心,将文本的一半移出图像
例子
我们将使用mtcars
数据集生成一个标题、两个图和一个表。从本例中可以看出,图和表可以完全相互独立
然后我们将使用ggplot2
、grid
和gridExtra
将它们对齐到3x2网格中。我们的布局如下
另一个适用于这种类型的软件包是cowplot
创建绘图
我自己也曾为这种事情挣扎过。通过一点工作,我最终创建了一个包含图表和表格的图形对象,然后将其放在一个FlexDashboard单元格中。因此,使用
gridExtra
、ggpubr
和/或cowplot
组合的东西。谢谢,我们将检查这些软件包。这里需要注意一件事。这些条形图和表格彼此不相关。他们是不同的。如果您能提供更多信息,我们将不胜感激。能给我一个你的作品样本吗?想看看你有没有更新吗?@Adam我试过这个网格。排列(t1,g1,main=textGrob(“Title”,gp=gpar(cex=1)),ncol=2,widths=unit.c(grobWidth(t1),unit(1,“npc”)-grobWidth(t1))
这里t1是表,g1是图。但不起作用。你能帮我吗?首先谢谢你的时间和努力亚当,真的很感激。将检查代码并让您知道它正在工作。谢谢还有一项澄清。我们能不能把桌子和第一区连起来。这张桌子看起来很小。我们能使表格和绘图的大小相同吗?这就是我提到的缩放问题——特别是表格。我还没有想出一个很好的方法来做到这一点。大概您可以从grob对象中获取一些特征并将它们匹配起来。我自己也做了一些尝试和错误的字体大小和什么不试图使他们对齐。所以我认为“是的”,你可以,但我不是这样做的专家。也许有人有一个简单的方法。
library(ggplot2)
library(grid)
library(gridExtra)
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)
### Performance {data-height=2000}
```{r}
grid.draw(group1)
```