我要展示ggplot
浏览器上的对象作为 svg 使用 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
.我尝试使用
htmlSVG
功能,但它不适用于 ggplot
.我收到一个错误:Error in FUN(X[[i]], ...) : argumemt is not a character vector
然而,它在基本情节上效果很好 -
htmlSVG(plot(data = sampled_df, z ~ price))
当我将它包含在 rmarkdown
上时.你知道可以用
ggplot
做同样的事情吗?对象?
最佳答案
我找到了解决方案。我所要做的就是使用 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()
生成的消息.
关于r - 将 rmarkdown 中的 ggplot 对象显示为 html svg 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756019/