2012-09-22 35 views
2

我想知道是否有可能做R这种仪表板(我的意思是这种情节)?仪表板 - (拨)米在R

这里,我想中的R做的(首先是从SAS

编辑例子:我在Windows 7(64位)工作。

enter image description here

enter image description here

+0

您是否在寻找能够立即为您提供此功能的产品,或者您是否愿意投入一些工作? – Dason

+0

也许这两个,如果我有一些东西开始工作,但如果有办法做得更快,我会很感激。 – Maciej

回答

7

下面是一些开始使用图形的基础。让它更漂亮留给读者。你可以在这里看到一个例子:http://www.math.csi.cuny.edu/gw/ex-dashboard.R

dashboard <- function(dial=list(
         list(color="red", 
          range=c(10, 40)), 
         list(color="yellow", 
          range=c(40, 60)), 
         list(color="green", 
          range=c(70, 100)) 
         ), 
         value=from) { 


    from <- min(unlist(lapply(dial, "[[", i="range"))) 
    to <- max(unlist(lapply(dial, "[[", i="range"))) 

    theta <- seq(-pi/3, pi + pi/3, length=100) 
    r <- 1 

    scale <- function(x) { 
    m <- (pi + pi/3 - (-pi/3))/(from - to) 
    (pi + pi/3) + m*(x - from) 
    } 

    plot.new() 
    plot.window(xlim=c(-1, 1), ylim=c(sin(-pi/3), 1)) 

    lines(cos(theta), sin(theta)) 
    sapply(dial, function(l) { 
    d <- scale(l$range) 
    x <- seq(d[1], d[2], length=100) 
    lines(cos(x), sin(x), col=l$color, lwd=3) 
    }) 

    ticks <- pretty(c(from, to), n=5) 
    ticks_th <- scale(ticks) 
    r <- 1 - .15 
    text(r*cos(ticks_th), r*sin(ticks_th), labels=ticks) 

    sapply(ticks_th, function(th) { 
    lines(cos(th)*c(1,.95), sin(th)*c(1, .95)) 
    }) 

    r <- 1 - .25 
    th <- scale(value) 
    arrows(0, 0, cos(th), sin(th)) 


} 

dashboard(value=60) 
+0

谢谢,这是我可以开始工作的地方:) – Maciej

+0

很棒的功能!我不习惯在圆圈,cos,sin等等中思考......把这个图改成半个圆(上半部),左边是0,右边是100,很容易吗? – Luc

2

这有一点做与R,但只如何让代表仪表板项目 GUI控件的保持。

我认为Gtk2可能会这样做,所以RGtk2包(及其包装)可能会有所帮助。我知道Qwt工具包有这样一个事实,但那个更难以访问(因为你需要一个C++桥)。

+0

那么有没有可能的方式来绘制这样的米在R?那么我不需要一个gui,而是一个类似的数字/情节。 – Maciej

+0

我没有说这是不可能的。我确实说它不是内置的。我知道Qwt工具包(用于C++,建立在Qt之上)有它。但这并不容易(但可能)。这取决于许多事情,如平台,操作系统,......你没有说明。 –

+0

对不起,我在Windows上工作。 – Maciej

5

你可以做极坐标图类似:

require(plotrix) 
polar.plot(c(0,20),c(0,60),main="Dashboard",lwd=3,line.col=4) 

您可以深入挖掘的代码,如果你想自定义外观。使用radial.plot可能会给你更多的自定义。

polar plot