使用R创建图形/绘图/图表,使用GTK显示和交互

时间:2012-11-09 09:34:31

标签: c++ python r gtk

我想使用R生成一些图形/图表/图表,然后使用GTK显示它们。一个特征是图必须能够自动更新并具有一些交互功能,例如设置最大值/最小值标签,重新缩放,允许标准化等等......数据集可能具有数千个数据的顺序积分,可能高达十万。

是否有任何库/模块已经?我的Google-fu很弱。我不介意c ++或python。

如果没有这样的库,我将如何实现这个

注意:系统是嵌入式的 - 它当然没有Internet连接,但有内部网络。使用网络会大大增加系统的成本,因此它不是解决我问题的好方法。

4 个答案:

答案 0 :(得分:4)

由于你已经在你的标签中加入了python,也许matplotlib会有一些兴趣吗?以防万一。

答案 1 :(得分:2)

首先,R的核心不具备交互式图形 - 这与使用编程语言本身控制几乎所有内容的想法背道而驰。

有些库允许您创建更多或更少的交互式图,从简单的locator函数开始,您需要将其包装到R程序中,并包括来自RStudio的manipulate包以及iplot包。甚至还有一个名为playwith的基于GTK +的R包。

根据您实际想要实现的目标,也许使用gnuplot会更好。

答案 2 :(得分:2)

我想知道这些图形设备是否存在10,000点问题,并且gWidgets脚本在RGtk2Qt下运行,它的边界速度足够快可接受的(当然在我老化的机器上100,000点太多了):

library(gWidgets)
options(guiToolkit="RGtk2")
w <- gwindow("test")
pg <- gpanedgroup(cont=w)
fl <- glayout(cont=pg)
gg <- ggraphics(cont=pg)
size(gg) <- c(600, 600)

fl[1,1] <- "No. points"
fl[1,2] <- no_pts <- gedit("10", cont=fl, coerce.with=as.numeric)
fl[2,2] <- gbutton("click me", cont=fl, label="", handler=function(h,...) {
  n <- svalue(no_pts)
  plot(rnorm(n), rnorm(n))
})

如果这个速度是可以接受的,那么可以相对容易地根据您的特定需求制作GUI。可能是cranvas包可以使Qt更快。

否则,我不知道Duncan Murdoch的rgl包是否有用,但它可能是有用的。 Simon Urbanek在上次使用会议上做了一个非常精彩的演示,其中一些浏览器中的openGl图形引擎允许超过1,000,000点的非常快速的绘图,这是通过websocket完成的。​​

答案 3 :(得分:1)

对于允许来自服务器的这种功能的基于Web的解决方案(web是未来:)),我将看看Rstudio上的人们刚刚发布的闪亮包。它看起来像你需要的,而不必你做任何程序。你得到的奖金是,任何拥有浏览器的人都可以从任何地方打开它。见这个lnks:

http://blog.rstudio.org/2012/11/08/introducing-shiny/