Учитывая то же самое ggplot
с двумя разными fig.height/fig.width
конфигурациями заголовков чанка, можно увидеть, что выходные данные выглядят по-разному. Точки на графике 2 более запутаны, а шрифты крупнее. На графике 1 все наоборот.
Я ищу программное решение для создания графика 1 и сохранения его в заданных границах формата A4 (теоретически я могу вручную уменьшить размер, когда документ Word открыт). Я показываю график 2, чтобы прояснить, что корректировка fig.height/fig.width
не приведет к желаемому результату. А еще dpi
должно быть 600
.
---
output:
officedown::rdocx_document:
base_format: "rmarkdown::word_document"
---
# Plot 1
```{r, fig.height = 10, fig.width = 10, echo = FALSE, message = FALSE, dpi = 600}
library(officedown) # 0.3.0
library(ggplot2) # 3.4.2
df <- data.frame(A = sample(1000), B = sample(1000), size = sample(1000))
ggp <- ggplot(data = df, aes(x = A, y = B, size = size)) +
geom_point()
ggp
```
# Plot 2
```{r, fig.height = 7, fig.width = 7, echo = FALSE, message = FALSE, dpi = 600}
ggp
```
Не так чисто, как могло бы быть, но можно сохранить желаемый ggplot
с помощью ggsave()
, где height
и width
можно установить в ggsave()
по мере необходимости. Затем это статическое изображение можно включить с помощью knitr::include_graphics()
и изменить его размер до формата А4, используя параметры фрагмента fig.height/fig.width
.
---
output:
officedown::rdocx_document:
base_format: "rmarkdown::word_document"
---
# Plot
```{r, fig.height = 7, fig.width = 7, echo = FALSE, message = FALSE, dpi = 600}
library(officedown) # 0.3.0
library(ggplot2) # 3.4.2
df <- data.frame(A = sample(1000), B = sample(1000), size = sample(1000))
ggp <- ggplot(data = df, aes(x = A, y = B, size = size)) +
geom_point()
ggsave("my_ggplot.png", plot = ggp, dpi = 600, height = 10, width = 10)
knitr::include_graphics("my_ggplot.png")
```
Обратите внимание, что для неквадратных изображений также необходимо установить соответствующий fig.asp
(например, height/width = 0.6
), чтобы предотвратить нежелательное искажение. Таким образом, в приведенном выше примере также можно было бы установить только fig.width = 7
и fig.asp = 1
.
---
output:
officedown::rdocx_document:
base_format: "rmarkdown::word_document"
---
# Plot
```{r, fig.width = 7, fig.asp = 0.6, echo = FALSE, message = FALSE, dpi = 600}
library(officedown) # 0.3.0
library(ggplot2) # 3.4.2
df <- data.frame(A = sample(1000), B = sample(1000), size = sample(1000))
ggp <- ggplot(data = df, aes(x = A, y = B, size = size)) +
geom_point()
ggsave("my_ggplot.png", plot = ggp, dpi = 600, height = 6, width = 10)
knitr::include_graphics("my_ggplot.png")
```