我想使用ggplot
在浏览器上显示rmarkdown
个对象。
---
title: ""
output: html_document
---
```{r setup, include = FALSE}
library(svglite)
library(ggplot2)
knitr::opts_chunk$set(
dev = "svglite",
fig.ext = ".svg"
)
```
```{r, warning = F}
data(cars)
ggplot(mtcars, aes(mpg, qsec, color = factor(cyl))) +
geom_point()
```
一切正常,但当我在Chrome中打开它并尝试检查元素时,结果表明整个情节都在<img>
标签内。我想要实现的是使用整个rmarkdown
的html代码创建ggplot
doc。
我尝试使用htmlSVG
功能,但它不适用于ggplot
。我收到一个错误:
Error in FUN(X[[i]], ...) : argumemt is not a character vector
但是,当我将其添加到htmlSVG(plot(data = sampled_df, z ~ price))
时,它在基本情节rmarkdown
上效果非常好。
您是否知道可以对ggplot
个对象执行相同的操作?
答案 0 :(得分:2)
我找到了解决方案。我所要做的就是使用生成整个代码的strstring
,然后使用htmltools::HTML
。
---
title: ""
output: html_document
---
```{r setup, include = FALSE}
library(svglite)
library(ggplot2)
knitr::opts_chunk$set(
dev = "svglite",
fig.ext = ".svg"
)
```
```{r, warning = F, echo = F}
data(cars)
s <- svgstring()
ggplot(mtcars, aes(mpg, qsec, color = factor(cyl))) +
geom_point()
htmltools::HTML(s())
invisible(
dev.off()
)
```
我使用invisible
函数隐藏按dev.off()
生成的邮件。