Можем ли мы сохранить заголовок вверху графически расположенных объектов в html выводе rmarkdown? - PullRequest
6 голосов
/ 12 марта 2020

Следующая уценка показывает проблему, заключающуюся в том, что подписи, которые успешно go находятся наверху рисунков ggplot с использованием fig.topcaption=TRUE, но не с сюжетно объектами.

Я узнал о fig.topcaption здесь . Базовый код для fig.topcaption, кажется, находится здесь в knitr , хотя это либо несовместимо с графиками, либо это может быть pando c или 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 Ответ

1 голос
/ 16 марта 2020

Следующий трюк будет работать при выводе HTML.
Мы можем отформатировать рисунок в виде таблицы (с изображением в качестве только ячейки) и абзаца (где живут подписи к рисунку) как заголовок таблицы и поместите его сверху.

Просто поместите этот CSS блок ниже YAML:

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