2

Rでこの種のダッシュボードを作成できるかどうか疑問に思っています(この種のプロットを意味します)?

ここに私がRでやりたい例があります(最初はからですSAS

編集:私はWindows 7(64ビット)で作業しています。

ここに画像の説明を入力

ここに画像の説明を入力

4

3 に答える 3

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)
于 2012-09-22T20:18:04.940 に答える
5

極座標プロットでも同様のことができます:

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

外観をカスタマイズしたい場合は、コードをさらに深く掘り下げることができます。を使用radial.plotすると、より多くのカスタマイズが可能になります。

極座標

于 2012-09-22T16:38:29.423 に答える
2

これは R とはほとんど関係がありませんが、ダッシュボード アイテムを表す GUI ウィジェットを取得する方法とのみ関係があります。

Gtk2 がそれを行う可能性があると思うので、RGtk2 パッケージ (およびそのラッパー) が役立つ可能性があります。Qwt ツールキットにあることは知っていますが、アクセスするのはより困難です (C++ ブリッジが必要なため)。

于 2012-09-22T15:49:06.147 に答える