2016-09-29 4 views
1

Kann FsLab/f # Formatierung behandeln beliebige R Visualisierung von 3rd-Party-Bibliotheken?FsLab und R-Plots von Drittanbieter-R-Bibliotheken

Ich habe versucht, ein igraph Diagramm ohne Erfolg zu enthalten.

Ich kann ein (sehr) einfaches Diagramm Grundstück aus fsi dies durch die Auswertung Pop-up erhalten:

#load "packages/FsLab/Themes/DefaultWhite.fsx" 
#load "packages/FsLab/FsLab.fsx" 

open Deedle 
open FSharp.Data 
open RProvider 
open RProvider.graphics 
open RProvider.igraph 

let grpa = R.graph__from__literal("A--B, B-c") 
let pl = R.plot_igraph(grpa) 

aber wenn ich versuche, es in einer Zeitschrift schließen mit:

(*** include-value:pl ***) 

Ich bekomme nur den Ausgang RDotNet.SymbolicExpression enthalten.

Fehle ich hier etwas?

(das Pop-up-Diagramm selbst auch nicht ganz richtig sieht, aber ich denke, das ist ein anderes Problem!)

Antwort

2

Die FsLab Vorlage war etwas unzuverlässig dies zu tun, so habe ich beschlossen, die teilweise Unterstützung zu entfernen, die verwendet vorläufig da zu sein (es wäre schön, es wieder zu bekommen, aber es sollte gut funktionieren :-)).

Meine Empfehlung ist, eine Hilfsfunktion zu schreiben, die die R-Ausgabe in ein Bild einfängt und dann das Bild zurückgibt. Ich habe keine R dies testen installiert, aber etwas in diese Richtung sollte für R.plot zumindest arbeiten:

let capture f = 
    let file = Path.GetTempFileName() + ".png" 
    R.png(file) |> ignore 
    let res = f() 
    R.dev_off() 
    let img = Image.FromStream(new MemoryStream(File.ReadAllBytes file)) 
    File.Delete(file) 
    res, img 

Dann würden Sie in der Lage sein, Diagramme erstellen mit:

let pl, img = capture(fun() -> 
    R.plot(...)) 

Wie für die Verwendung von dies mit igraph - Ich bin mir nicht sicher, aber Tutorials zum Speichern von igraph Ausgabe in eine Datei sollte helfen. Eine Sache, die mir aufgefallen ist, ist, dass Sie manchmal R.show anrufen müssen, damit die Dinge gerendert werden, also versuchen Sie vielleicht:

let _, img = capture(fun() -> 
    R.plot_igraph grpa |> R.show) 

(*** include-value:img ***) 
Verwandte Themen