2012-09-22 60 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