首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R标记下的fig.width和fig.height

R标记下的fig.width和fig.height
EN

Stack Overflow用户
提问于 2022-07-25 06:25:32
回答 1查看 151关注 0票数 1

如果我使用R代码与fig.width一起生成选项卡,那么我很难让fig.height和flex_dashboard输出在R中工作。

在下面的示例中,对于"A“页面(手动输入选项卡),fig.widthfig.height就像我所期望的那样工作。但是在"B“页面上(使用R代码和results="asis"生成的选项卡),fig.widthfig.height并不像我预期的那样工作。

代码语言:javascript
复制
---
title: "Report"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
---

```{r, include=FALSE}

图书馆(Ggplot2)

图书馆(柔性仪表板)

D <- data.frame(x = rep(c("g1","g2"),每个= 50),

代码语言:javascript
复制
            y = rnorm(100))
代码语言:javascript
复制
# A

## A tabs {.tabset}

### g1
```{r, echo=FALSE, fig.width = 4, fig.height = 12}

(y,data = dd$x == "g1",)

代码语言:javascript
复制
### g2
```{r, echo=FALSE, fig.width = 4, fig.height = 12}

(y,data = dd$x == "g2",)

代码语言:javascript
复制
# B

## B tabs {.tabset}

```{r, echo=FALSE, fig.width = 4, fig.height = 12, results = "asis"}

(g在c("g1",“g2”)中){

cat(paste0("\n\n### ",g,"\n"))

打印(qplot(y,data = dd$x == g,))

}

代码语言:javascript
复制

下面的截图来自"A“页面。由于fig.height=12,图像很高,窗口可以垂直滚动,这就是我想要的。

下面的截图来自"B“页面。这里的图像按比例是高的,但它并不占据浏览器窗口的全部高度,这不是我想要的。

我希望使用R代码和results="asis"生成选项卡(就像在B页上那样),但是我希望fig.height使图像变大(就像在A页面上那样)。我该怎么做?

在R版本4.2.1中,我使用的是rmarkdown版本2.14、flexdashboard版本0.5.2和ggplot2版本3.3.6。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-25 07:49:55

您可以编写一个函数create_tab,它将为每个选项卡创建代码,给出一个绘图对象qpfig.heightfig.width和一个选项卡名。然后在for循环中,您可以在create_tab函数中传递绘图对象。

代码语言:javascript
复制
---
title: "Report"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
---

```{r, include=FALSE}

图书馆(Ggplot2)

图书馆(柔性仪表板)

D <- data.frame(x = rep(c("g1","g2"),每个= 50),

代码语言:javascript
复制
            y = rnorm(100))

create_tab <-函数(g,fig_height=4,fig_width=12,tab_name) {

g_deparsed <- paste0(离开)

代码语言:javascript
复制
function() {g}

),崩溃= '')

tab_chunk <- paste0(

代码语言:javascript
复制
"\n\n### ", tab_name, "\n", 
代码语言:javascript
复制
"```{r tab_chunk_", tab_name, 
代码语言:javascript
复制
", fig.height=", fig_height, ", fig.width=", fig_width, ", echo=FALSE}",
代码语言:javascript
复制
"\n(", 
代码语言:javascript
复制
g_deparsed
代码语言:javascript
复制
, ")()",
代码语言:javascript
复制
"\n```"
代码语言:javascript
复制
)

cat(针织品::针织物(text= knitr::knit_expand(text = tab_chunk),quiet = TRUE))

}

代码语言:javascript
复制
# A

## A tabs {.tabset}

### g1
```{r, echo=FALSE, fig.width = 4, fig.height = 12}

(y,data = dd$x == "g1",)

代码语言:javascript
复制
### g2
```{r, echo=FALSE, fig.width = 4, fig.height = 12}

(y,data = dd$x == "g2",)

代码语言:javascript
复制
# B

## B tabs {.tabset}

```{r, echo=FALSE, results = "asis"}

(g在c("g1",“g2”)中){

qp <- qplot(y,data = dd$x == g,)

create_tab(qp,tab_name = g)

}

代码语言:javascript
复制

致谢

我从create_tab函数中提取了这篇博客文章函数的代码,并对创建flexdashborad选项卡做了非常轻微的修改。请阅读这篇文章,详细了解该函数中的代码是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73104786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档