Я создаю html-документ, создавая различные объекты с функциями ggplotly()
и htmltools, такими как h3()
и html()
. Затем я отправляю их в виде списка на htmltools::save_html()
, чтобы создать HTML-файл.
Я бы хотел добавить диаграммы ggplot непосредственно в виде изображений, а не прикреплять все сюжетные колокольчики и свистки. В конце я создам автономный html-файл (без зависимостей), и сюжетная линия сделает этот файл слишком большим.
Есть ли какая-то функция, которая преобразует объект ggplot в какой-то объект html-типа? Или мне нужно сохранить ggplot как файл .png, а затем прочитать файл .png в какой-то объект, который я добавляю в список в функции save_html ()?
Мой код R выглядит примерно так:
library("tidyverse")
library("plotly")
library("htmltools")
HTMLOut <- "c:/Users/MrMagoo/My.html")
df <- data.frame(x=1:25, y=c(1:25*1:25))
g7 <- ggplot(df,aes(x=x, y=y)) + geom_point()
p7 <- ggplotly(g7) # I would like to use something other than ggplotly here. Just capturing the ggplot as an image would be fine.
# create other objects to add to the html file
t7 <- h2(id="graph7", "Title for graph #7")
d7 <- p("description of graph 7")
save_html(list(t7, p7, d7), HTMLOut)
# of course, the real code has many more objects in that list – more graphs, text, tables, etc.
Я хотел бы заменить объект plotly (p7) чем-то, что просто представляет g7 таким образом, чтобы не вызвать ошибку в функции save_html.
Я надеялся найти функцию, которая могла бы напрямую Base64 кодировать объект ggplot, но, похоже, мне сначала нужно вывести объект 'ggplot' в виде файла .png (или SVG на каждый тенг) L, ниже), затем base64-закодировать его. Я надеялся, что есть более прямой путь, но я могу в конечном итоге сделать это, как в https://stackoverflow.com/a/33410766/3799203, заканчивая его
g7img <- "<img src=\"data:image/png;base64,(base64encode string)\""
g7img <- htmltools::html(g7img)