Joh*_*ohn 4 pdf-generation r knitr r-markdown r-plotly
在A R降价文件,没有人知道为什么out.width,out.height,figure.width并figure.height产生一个PDF文件时参数不plotly改变图表的大小?(我确切地说这些参数可以完美地使用plot函数)
请在下面找到带有 Rmarkdown 文件的可复制示例
在这个例子中,我希望 plotly 图表像 plot 图表一样占据整个工作表。
---
title: "Change chart size chart on pdf file using plotly"
output:
pdf_document: default
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(echo=FALSE,message=FALSE)
```
## Parameters doesn't work with plotly
```{r, out.width='100%',out.height='100%',fig.height=20, fig.width=15, fig.align="left"}
library(plotly)
plot_ly(x = cars[1:10,]$speed,y = cars[1:10,]$dist)
```
## Parameters works using plot function
```{r,out.width='130%',out.height='100%', fig.height=20, fig.width=15, fig.align="left"}
plot(cars[1:10,])
```
Run Code Online (Sandbox Code Playgroud)
绘图图形主要是为交互式输出设计的,因此,在导出为 PDF 中的静态图像时,可能会表现得有点奇怪。这个问题过去有一些类似的帖子,似乎来自 webshot 如何创建静态图像。
您可以通过在创建图形时强制绘制图形尺寸来解决此问题。该plot_ly函数具有参数width和height可让您设置结果图的输出尺寸。
如果您想在 PDF 报告中包含 HTML 对象,您可以使用webshot包,该包本质上截取渲染图的屏幕截图并将其转换为静态图像以供您包含在报告中。这在bookdown book 中有很好的解释。要安装它,您需要运行:
install.packages('webshot')
webshot::install_phantomjs()
Run Code Online (Sandbox Code Playgroud)
一旦安装了webshot,它应该会自动运行:
---
title: "Change chart size chart on pdf file using plotly"
output:
pdf_document: default
papersize: a4
---
```{r include=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
library(plotly)
```
```{r, out.width="100%"}
plot_ly(x = cars[1:10,]$speed,y = cars[1:10,]$dist, width = 1000, height = 1200)
```
Run Code Online (Sandbox Code Playgroud)
如果我能弄清楚它为什么起作用,我会更新这个答案,但希望有帮助!
| 归档时间: |
|
| 查看次数: |
8303 次 |
| 最近记录: |