Zusammenfassung: Mein ultimatives Ziel ist es, rCharts
, und speziell Highcharts
, als Teil eines ReporteRs
PowerPoint-Bericht Automatisierung Workflow. Eines der Diagramme, das ich verwenden möchte, wird im Viewer-Fenster in Rstudio als HTML gerendert, und addPlot(function() print(myChart))
fügt es nicht dem PowerPoint hinzu. Als Workaround habe ich mich entschieden, myChart
auf die Festplatte zu speichern, von wo aus ich es einfach auf diese Weise zum PowerPoint hinzufügen könnte.Wie kann ein Plot als Bild auf der Festplatte vom Viewer in RStudio gespeichert werden?
Also meine Frage ist wirklich, Wie bekomme ich meine HTML-Bild in meine ReporteRs
Workflow? Entweder es auf eine Festplatte zu speichern, oder es von ReporteRs
lesen zu bekommen würde mein Problem lösen.
Diese Frage ist wirklich die gleiche wie this one, aber ich bin rCharts
verwenden, speziell das Beispiel here gefunden:
#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
Also, wenn ich
> png(filename="~/Documents/name.png")
> plot(myChart)
Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'
> dev.off()
versuche ich, diesen Fehler zu bekommen.
Ich habe in Highcharts documentation sah, sowie manyotherpotentialsolutions, die auf Javascript und phantomjs
zu verlassen scheinen. Wenn Ihre Antwort auf phantomjs
beruht, nehmen Sie bitte an, dass ich keine Ahnung habe, wie ich sie verwenden soll. webshot
ist ein anderes Paket, das ich gefunden habe, das sogar so nett ist, eine install_phantomjs()
Funktion einzuschließen, aber von was ich finden konnte, erfordert es Sie, Ihre Ausgabe in ein Objekt zuerst zu machen.
Meine Frage ist wirklich ein Duplikat this one, die nicht ein Duplikat this one ist, weil das ist, wie die HTML-Ausgabe in Rmarkdown einzubetten, nicht als Datei auf der Festplatte speichern.
Ich fand auch this unanswered question, die auch im Grunde das gleiche ist.
edit: wie von @hrbrmstr und anderen Punkten bemerkt, sind Radar-Diagramme nicht immer die besten Visualisierungs-Tools. Ich finde mich verpflichtet, einen für diesen Bericht zu machen.
Verwenden Sie das Paket 'webshot'. Es gibt Beispiele, wie man das auf SO macht, aber es ist ziemlich einfach: 'myChart $ save ("/tmp/rcharts.html "); webshot :: webshot ("/ tmp/rcharts.html", Datei = "/ tmp/out.png", Verzögerung = 2) '. Aber warum nicht einfach das "Radarchart" -Paket verwenden? – hrbrmstr
'webshot' verwendet' phantomjs'. Ich habe keine "Radarecharge" -Ausgabe gesehen, die gut aussah. Ich habe gerade gesehen, dass ein Fehler, den ich mit 'ggradar' hatte, behoben wurde, damit ich zurückgehen und dieses Paket ausprobieren kann. – BLT
Ja, es verwendet phantomjs und es _actually has_ eine 'install_phantomjs()' -Funktion (müssen Hilfe-Seiten lesen).Soweit Radarkarten (sie sind in der Regel schreckliche Visualisierung Entscheidungen) 'fsmb :: radarchart()' [macht keine schlechte Arbeit] (https://www.dropbox.com/s/agmc0peh2xywky9/Picture1.png ? dl = 1) und ich finde es unendlich viel besser (visuell ansprechender) als rCharts (dh die, die dieser Post erzeugt), aber es gibt viel bessere vis Auswahlmöglichkeiten IMO. – hrbrmstr