1

FsLab/f# フォーマットは、サードパーティ ライブラリからの任意の R ビジュアライゼーションを処理できますか?

igraphチャートを含めようとしましたが、成功しませんでした。

これを評価することで、(非常に) 単純なグラフ プロットを fsi からポップアップ表示できます。

#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)

しかし、それをジャーナルに含めようとすると:

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

出力RDotNet.SymbolicExpressionが含まれているだけです。

ここで何か不足していますか?

(ポップアップグラフ自体も正しく見えませんが、それは別の問題だと思います!)

4

1 に答える 1

2

FsLab テンプレートはこれを行う上でやや信頼性に欠けていたので、当分の間存在していた部分的なサポートを削除することにしました (元に戻せばよかったのですが、適切に動作するはずです :-))。

私が推奨するのは、R の出力を画像にキャプチャし、その画像を返すヘルパー関数を作成することです。これをテストするためにRをインストールしていませんがR.plot、少なくとも次の行に沿った何かが機能するはずです:

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

次に、以下を使用してチャートを作成できます。

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

これを使用するigraphことについては、よくわかりませんが、igraph出力をファイルに保存する方法に関するチュートリアルが役立つはずです。私が気づいたことの 1 つは、R.showレンダリングするものを取得するために呼び出す必要がある場合があることです。

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

(*** include-value:img ***)
于 2016-09-30T01:33:21.877 に答える