# [R] Graphical output: dials and meters for a dashboard?

Greg Snow Greg.Snow at imail.org
Tue Jan 15 19:52:07 CET 2008

```Here is a quick and dirty function to do so (things can easily be
changed to reflect preferences):

dial <- function(x, min=0, max=1){
old.par <- par(pty='s', lend=1)
on.exit(par(old.par))

plot(0,0, pch=16, cex=5, ann=FALSE, xaxt='n', yaxt='n', xlab='',
ylab='',
xlim=c(-1,1), ylim=c(-1,1) )

tmp.theta <- seq( -1/3*pi, 4/3*pi, length=11 )
segments( 0.9 * cos(tmp.theta), 0.9 * sin(tmp.theta),
cos(tmp.theta), sin(tmp.theta) )

tmp.theta <- seq(4/3*pi, 5/6*pi, length=100)
lines( cos(tmp.theta), sin(tmp.theta), col='red', lwd=5 )

tmp.theta <- seq(5/6*pi, 1/6*pi, length=100)
lines( cos(tmp.theta), sin(tmp.theta), col='yellow', lwd=5 )

tmp.theta <- seq(1/6*pi, -1/3*pi, length=100)
lines( cos(tmp.theta), sin(tmp.theta), col='green', lwd=5 )

tmp.theta <- seq(0,2*pi, length=360)
lines( 1.025*cos(tmp.theta), 1.025*sin(tmp.theta) )

tmp.theta <- (max-x)/(max-min) * 5/3*pi - pi/3

polygon( c(.05, 1, 0.05) * cos( tmp.theta + c(-pi/2,0,pi/2) ),
c(0.05, 1, 0.05) * sin( tmp.theta + c(-pi/2,0,pi/2) ),
col='black')

text( 0,-0.9, x )

}

Now you can do type:

> dial(.72)

Or

> dial( 57, 30,150 )

Multiple dials can be created using par(mfrow= ...
Or the my.symbols function from the TeachingDemos package.

--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
(801) 408-8111

> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Parker Jones
> Sent: Tuesday, January 15, 2008 9:39 AM
> To: r-help at r-project.org
> Subject: [R] Graphical output: dials and meters for a dashboard?
>
>
> Hello,
>
> I'm new to R and am evaluating it to see whether it would be
> an appropriate tool to create a "dashboard" (a graphical
> statistical summary page).  Could someone tell me if it is
> possible to display data as dials or meters. e.g. the four
> dials here: http://www.pentaho.com/images/snap_dashboard_1.png
>
> Browsing the site hasn't revealed anything yet.
>
> Thanks for any suggestions,
> PJ
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help