# Re: [R] Counting question

From: Thomas Lumley <tlumley_at_u.washington.edu>
Date: Sat 31 Jul 2004 - 01:34:23 EST

On Fri, 30 Jul 2004, Adair, Laurence wrote:

> Hi All,
>
> Here is something that sounds simple, but I'm having trouble getting it. I
> have a data frame with two columns, the first is date and the second is
> employee ID. I'd like to plot date on the horizontal axis, employee ID on
> the vertical axis, and the number of times the employee appears for the
> given date as a color. I've kluged something where I make a table
> (table(date, id)) and add points to a plot by looping through the rownames
> (employee ids) of the table. But certainly there is a better way of doing
> this??
>

The function below takes a correlation matrix and plots circles whose radius is proportional to the absolute value of the correlation. Something along these lines would presumably work for your problem.

-thomas

shadedcorr <- function(mat, labels = colnames(mat)) {   n <- NCOL(mat)
diag(mat) <- NA

```  mat <- mat[, n:1]
mat <- as.vector(mat)
pos <- mat >= 0
```

par(pty = "s", las = 2, mar = c(7, 7, 4, 4))   xy <- expand.grid(1:n, 1:n)
plot(xy, type = "n", axes = FALSE, xlab = "", ylab = "",   xlim = c(0.5, n + 0.5), ylim = c(0.5, n + 0.5))   if (any(pos %in% TRUE))
symbols(xy[, 1][pos], xy[, 2][pos], mat[pos]/2, bg = grey(0.8),   inches = FALSE, add = TRUE)
if (any(pos %in% FALSE))
symbols(xy[, 1][!pos], xy[, 2][!pos], -mat[!pos]/2, bg = grey(0.2),   inches = FALSE, add = TRUE)
axis(2, n:1, labels)
axis(1, 1:n, labels)
invisible(NULL)
}

R-help@stat.math.ethz.ch mailing list