我想使用R生成一些图形/图表/图表,然后使用GTK显示它们。一个特征是图必须能够自动更新并具有一些交互功能,例如设置最大值/最小值标签,重新缩放,允许标准化等等......数据集可能具有数千个数据的顺序积分,可能高达十万。
是否有任何库/模块已经?我的Google-fu很弱。我不介意c ++或python。
如果没有这样的库,我将如何实现这个?
注意:系统是嵌入式的 - 它当然没有Internet连接,但有内部网络。使用网络会大大增加系统的成本,因此它不是解决我问题的好方法。
答案 0 :(得分:4)
由于你已经在你的标签中加入了python,也许matplotlib会有一些兴趣吗?以防万一。
答案 1 :(得分:2)
首先,R的核心不具备交互式图形 - 这与使用编程语言本身控制几乎所有内容的想法背道而驰。
有些库允许您创建更多或更少的交互式图,从简单的locator
函数开始,您需要将其包装到R程序中,并包括来自RStudio的manipulate
包以及iplot
包。甚至还有一个名为playwith
的基于GTK +的R包。
根据您实际想要实现的目标,也许使用gnuplot会更好。
答案 2 :(得分:2)
我想知道这些图形设备是否存在10,000点问题,并且gWidgets
脚本在RGtk2
和Qt
下运行,它的边界速度足够快可接受的(当然在我老化的机器上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: