r - 将 rmarkdown 中的 ggplot 对象显示为 html svg 代码

标签 r svg ggplot2

我要展示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/

相关文章:

javascript - 带有 SVG 文档的 jQuery

angularjs - Web抓取在R中动态加载数据

r - 检查多列是否匹配 R 数据框中的值

r - 如何优化 data.table (r) 中的滞后差异

css - JavaFX2 : can I set opacity for Nodes' content and stroke separately?

r - 如何提供带有超链接的 ggplot2 图?

r - 在 R 中创建多个折线图

r - 为条形图和线条创建通用图例

r - 如何在 R 中使用 ggplot2 在投影 map 上绘制插值数据

r - 为什么 R、Excel 和 VBA 中 Male > Female 等于 TRUE?其他语言怎么样?