Spotfire から R にデータを渡し、R によって作成されたプロットを表示したいのです
が、これを行う最善の方法は何ですか?
2 に答える
画像を Spotfire に入れるコツがわかりました。これらの指示に従えば難しくはありませんが、Spotfire で行うと思われる方法とは大きく異なる方法で行われます。そのため、理解するのにしばらく時間がかかりました。
ここでは、その方法の概要を説明します。バイナリ オブジェクトである DocumentProperty を作成し、そのドキュメント プロパティに値を与える Spotfire コードを記述し、「ラベル」タイプの Spotfire プロパティ コントロールを使用してそのバイナリ オブジェクトを表示します。
紛らわしい部分は、Spotfire の「Insert Image」ツールをまったく使用しないことと、Spotfire の R コード内で生成されたファイル名をまったく使用しないことです。Spotfire で問題にアプローチすると思われる最も明白な 2 つの方法がまったく役に立たず、間違っているという考えに慣れたら、ある程度の進歩を遂げることができます。
コードがかなり長いので、Spiderplot の詳細は省略します。
これがあなたがすることです。
1) Spotfire で「Binary」タイプのドキュメント プロパティを作成します (例: 「imageThatGoesBackToSpotfire」) 2) 画像を生成してファイルに書き込む R コードをいくつか記述します。
# get a temporary directory name on the local machine. You wouldn’t need to do this is you were just
# going to run it on your own, but you need to do it if you intend to let anybody else run it on their own machine.
tempfilebase = tempfile()
# take the tempfilebase and prepend it to a filename.
myFilename<-“someFileName.jpg”
myFullFilename <- paste(tempfilebase,myFilename,sep="")
#open a jpeg
jpeg(filename=myFullFileName)
# generate the image, however you normally would in R
plot(input)
# close the file
dev.off
# open a connection to that file.
myConnection<-file(myFullFileName,open=”rb”)
imageThatGoesBackToSpotfire<- data.frame(r=readBin(myConnection, what="raw", n=(file.info(myFullFileName)$size)))
close(myConnection)
3) 上記の R スクリプトを実行します。プロットへの「入力」であるいくつかの列を選択し、R スクリプトが出力を「imageThatGoesBackToSpotfire」DocumentProperties に返すようにします。4) Spotfire でテキストエリアを作成します。5) プロパティ コントロールを「ラベル」タイプのテキスト領域に挿入します。(下の画像の丸で囲んだアイコンをクリックしてください)。ダイアログが開きます。
データ関数を入力と出力に登録する必要があり、特定の PNG データをバイナリ ラベルとして返す必要があります。
詳細: http://spotfire.tibco.com/tips/2014/02/25/dynamically-displaying-images-in-a-text-area/