Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flexdashboard/R标记中的布局_R - Fatal编程技术网

Flexdashboard/R标记中的布局

Flexdashboard/R标记中的布局,r,R,我编辑了这个问题,因为我找到了一种与我想要的相似的方法。但在下面的示例中,在“性能”选项卡下,我可以使ggplot显示在表格旁边吗?(与此类似) 下面是示例代码 --- title: "Untitled" output: flexdashboard::flex_dashboard: orientation: rows vertical_layout: scroll runtime: shiny source_code: embed theme: c

我编辑了这个问题,因为我找到了一种与我想要的相似的方法。但在下面的示例中,在“性能”选项卡下,我可以使ggplot显示在表格旁边吗?(与此类似)

下面是示例代码

---
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)

```