Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up| --- | |
| title: "Render plotly MathJax inside rmarkdown" | |
| output: html_document | |
| --- | |
| Some HTML-based MathJax: | |
| $$ \alpha+\beta $$ | |
| You _could_ print this **plotly** graph with SVG-based rendering, but it would break the HTML-based rendering of **rmarkdown**! | |
| ```{r message = FALSE} | |
| library(plotly) | |
| p <- plotly_empty() %>% | |
| add_trace(x = 1, y = 1, text = TeX("\\alpha"), mode = "text", size = I(1000)) %>% | |
| config(mathjax = "cdn") | |
| ``` | |
| Instead, use something like the **widgetframe** package to create a responsive iframe which ensure the SVG-based rendering that plotly requires is done independently of **rmarkdown**'s HTML-based rendering. | |
| ```{r} | |
| widgetframe::frameableWidget(p) | |
| ``` | |
| Or, do it the old-fashioned way: save your plotly graph to an HTML file via `htmlwidgets::saveWidget()` then use an HTML `<iframe>` | |
| ```{r} | |
| htmlwidgets::saveWidget(p, "my-plotly-plot.html") | |
| ``` | |
| <iframe src="my-plotly-plot.html" width="100%" height="400" id="igraph" scrolling="no" seamless="seamless" frameBorder="0"> </iframe> |