我想将数据从Spotfire传递到R,然后显示由R构造的图。
最好的方法是什么?
答案 0 :(得分:1)
我已经找到了将图像放入Spotfire的技巧。如果你遵循这些指示并不难,但它的完成方式与你猜测你在Spotfire中的表现方式有很大不同,这也是我花了一些时间才弄明白的原因。
以下是如何操作的概述。您创建一个二元对象DocumentProperty,您编写一些Spotfire代码,为该Document Property提供一个值,并使用“Label”类型的Spotfire Property Control显示该二进制对象。
令人困惑的部分是您根本不使用Spotfire“插入图像”工具,并且您根本不使用Spotfire中R代码内生成的文件名。一旦你习惯了这个想法,你认为你在Spotfire中解决问题的两种最明显的方法是完全无用的和错误的,你可以取得一些进展。
我会省略蜘蛛图细节,因为代码很长。
这是你做的。
1)在Spotfire中创建“二进制”类型的文档属性,例如“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)将属性控件插入“标签”类型的文本区域。 (单击下图中圈出的图标)。这会打开一个对话框,
答案 1 :(得分:0)
您需要使用输入和输出注册数据函数,并且需要将特定的PNG数据作为二进制标签返回。
一些细节:http://spotfire.tibco.com/tips/2014/02/25/dynamically-displaying-images-in-a-text-area/