我们可以将标题保留在rmarkdown的html输出中的可绘制对象的顶部吗?

时间:2020-03-12 04:41:07

标签: html r ggplot2 r-markdown plotly

以下标记说明了使用fig.topcaption=TRUE字幕成功到达ggplot图形顶部但不使用 plotly 对象的字幕的问题。

我了解了图标题herefig.topcaption的基础代码似乎生活在knitr中,尽管它与可绘图图形不兼容,或者可能与pandoc,与html / html窗口小部件相关,或者在从rmarkdown到最终输出的链。

我对现在的工作感到很满意-建议?

---
title: "Untitled"
author: "Internet"
date: "29 février 2020"
output:
  bookdown::html_document2
---

```{r setup, message=FALSE, echo=FALSE}

library(knitr)
library(ggplot2)
library(plotly)

```

Here is a ggplot object with caption at the top as desired.


```{r, fig.cap="Hello ggplot", fig.topcaption=TRUE, message=FALSE, echo=FALSE}
ggplot(diamonds,aes(price,carat)) + geom_point()
```

Here is the previous ggplot converted to a plotly object with caption reverting to the bottom.


```{r, fig.cap="Hello plotly", fig.topcaption=TRUE, message=FALSE, echo=FALSE}
my_ggplot <- ggplot(diamonds,aes(price,carat)) + geom_point()
ggplotly(my_ggplot)
```

Caption reverts to bottom even if plotly object is not created from ggplot object

```{r, fig.cap="Hello plotly2", fig.topcaption=TRUE, message=FALSE, echo=FALSE}
plot_ly(
  x=c(1,2,3),
  y=c(5,6,7),
  type='scatter',
  mode='lines')
```

1 个答案:

答案 0 :(得分:6)

以下trick将可用于HTML输出。
我们可以将图形格式化为表格(图像仅作为单元格),将段落(图形标题所在的位置)格式化为表格标题,并将其放在顶部。

只需将此CSS块放在YAML下:

```{css plotly-caption, echo = FALSE}
div.figure {
  display: table;
}
div.figure p {
  display: table-caption;
  caption-side: top;
}
```