Реферат: моя конечная цель - использовать rCharts
, и в частности Highcharts
, как часть рабочего процесса автоматизации отчетов PowerPoint ReporteRs
. Одна из диаграмм, которые я хотел бы использовать, отображается как html в панели Viewer в Rstudio, а addPlot(function() print(myChart))
не добавляет ее в PowerPoint. В качестве обходного решения я решил попытаться сохранить myChart
на диск, откуда я мог бы просто добавить его в PowerPoint таким образом.Как сохранить сюжет как изображение на диске из Viewer в RStudio?
Так что мой вопрос действительно, Как мне получить изображение html в рабочий процесс ReporteRs
? Либо получение его на диск, либо получение его для чтения на ReporteRs
решит мою проблему.
Этот вопрос на самом деле же, как this one, но я использую rCharts
, в частности, пример найден here:
#if the packages are not already installed
install.packages('devtools')
require(devtools)
install_github('rCharts', 'ramnathv')
#code creates a radar chart using Highcharts
library(rCharts)
#create dummy dataframe with number ranging from 0 to 1
df<-data.frame(id=c("a","b","c","d","e"),val1=runif(5,0,1),val2=runif(5,0,1))
#muliply number by 100 to get percentage
df[,-1]<-df[,-1]*100
myChart <- Highcharts$new()
myChart$chart(polar = TRUE, type = "line",height=500)
myChart$xAxis(categories=df$id, tickmarkPlacement= 'on', lineWidth= 0)
myChart$yAxis(gridLineInterpolation= 'circle', lineWidth= 0, min= 0,max=100,endOnTick=T,tickInterval=10)
myChart$series(data = df[,"val1"],name = "Series 1", pointPlacement="on")
myChart$series(data = df[,"val2"],name = "Series 2", pointPlacement="on")
myChart
Так что, если я пытаюсь
> png(filename="~/Documents/name.png")
> plot(myChart)
Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'
> dev.off()
я получаю эту ошибку.
, я посмотрел в Highcharts documentation, а также manyotherpotentialsolutions что похоже полагаться на Javascript и phantomjs
. Если ваш ответ зависит от phantomjs
, пожалуйста, предположите, что я понятия не имею, как его использовать. webshot
- это еще один пакет, который был так любезен, что я включил функцию install_phantomjs()
, но из того, что я мог найти, требуется сначала включить ваш вывод в объект Shiny
.
Мой вопрос действительно дубликат this one, который не дубликат this one, потому что, как встроить вывод HTML в Rmarkdown, не сохранить его в виде файла на жестком диске.
Я также нашел this unanswered question, который также в основном такой же.
Редактировать: как отмечает @hrbrmstr и множество других, радарные диаграммы не всегда являются лучшими инструментами визуализации. Мне нужно сделать один для этого отчета.
Используйте пакет 'webshot'. есть примеры того, как это сделать на SO, но это довольно просто: 'myChart $ save ("/tmp/rcharts.html "); webshot :: webshot ("/ tmp/rcharts.html", file = "/ tmp/out.png", delay = 2) '. Но почему бы просто не использовать пакет «radarchart»? – hrbrmstr
'webshot' использует' phantomjs'. Я не видел никакого выхода «radarchart», который выглядел хорошо. Я просто заметил, что ошибка, с которой я столкнулась с ggradar, была решена, поэтому я могу вернуться и попробовать этот пакет. – BLT
Да, он использует phantomjs, и он _активно имеет функцию 'install_phantomjs()' (необходимо прочитать страницы справки).Что касается радар-диаграмм (обычно это ужасные варианты визуализации) 'fsmb :: radarchart()' [не делает плохой работы] (https://www.dropbox.com/s/agmc0peh2xywky9/Picture1.png ? dl = 1), и я нахожу его бесконечно лучше (более визуально привлекательным), чем rCharts (т. е. те, которые генерирует этот пост), но есть лучший способ выбора IMO. – hrbrmstr