Re: [R] Graphics question: How to create a changing "smudge factor" for overlapping lines?

From: Tal Galili <tal.galili_at_gmail.com>
Date: Wed, 16 Jun 2010 13:36:43 +0300

Hi Paul,

Thank you for the ggplot2 suggestions.
Please note that during the last few hours, Hadley has put up his own ggplot2 implementation of the clustergram. I updated about it in the original post: http://www.r-statistics.com/2010/06/clustergram-visualization-and-diagnostics-for-cluster-analysis-r-code/

Cheers,
Tal

----------------Contact
Details:-------------------------------------------------------
Contact me: Tal.Galili_at_gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English)

On Wed, Jun 16, 2010 at 10:29 AM, Paul Hiemstra <p.hiemstra_at_geo.uu.nl>wrote:

> Hi Tal,
>
> I you use ggplot you can use the alpha command to make lines transparent.
> The nice thing is that when they overlap, the transparency adds up. I use
> this a lot to visualize outcomes from ensemble modelling (e.g. time series
> of RMSE).
>
> A small example:
>
> library(ggplot2)
> dat = data.frame(x = rep(1:100, 100),
> y = rep(1:100, 100),
> grp = rep(sapply(1:100, function(x)
> sprintf("line%s", x)), each = 100))
> dat$y = dat$y + rnorm(length(dat$y), 3, 3)
> # Without alpha
> ggplot(aes(x = x, y = y, group = grp), data = dat) + geom_line()
> # With alpha
> ggplot(aes(x = x, y = y, group = grp), data = dat) + geom_line(alpha =
> 0.04, size = 2)
>
> cheers,
> Paul
>
>
> On 06/15/2010 12:57 PM, Tal Galili wrote:
>
>> Hello all,
>>
>> I am trying to create a Clustergram in R.
>> (More about it here: http://www.schonlau.net/clustergram.html)
>>
>> And to produce a picture similar to what is seen here:
>> http://www.schonlau.net/images/clustergramexample.gif
>>
>> I was able (more or less) to write the R code for creating the image, but
>> there is one thing I can't seem to figure out, that is the
>> *changing*"smudge factor" of the lines.
>> I want the overlapping lines to "jitter" a tiny bit so they will give a
>> sense of thickness to the line (according to how many observations are
>> present in that cluster).
>> My current solution is to use a constant jitter (based on "seq") on all
>> the
>> k number of clusters, but that causes glitches in the produced image (run
>> my
>> code to see).
>>
>> Here is a simple self reproducible code to create the image I was able to
>> make:
>>
>>
>>
>> # ------------------------------------
>>
>> set.seed(100)
>> Data<- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
>> matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
>> colnames(x)<- c("x", "y")
>>
>> # noise<- runif(100,0,.05)
>> noise<- seq(0,.3, length.out = 100)
>> Y<- NULL
>> X<- NULL
>> k.range<- 2:10
>> for(k in k.range)
>> {
>> cl<- kmeans(Data, k)
>> y<- apply(cl$centers,1, mean)[cl$cluster] + noise
>> Y<- cbind(Y, y)
>> x<- rep(k, length(y))
>> X<- cbind(X, x)
>> points(y ~ x)
>> }
>>
>> require(colorspace)
>> COL<- rainbow_hcl(100)
>> plot(0,0, col = "white", xlim = c(1,10), ylim = c(-.5,1.6),
>> xlab = "Number of clusters", ylab = "Clusters means", main = "(Basic)
>> Clustergram")
>> axis(side =1, at = k.range)
>> abline(v = k.range, col = "grey")
>> matlines(t(X), t(Y), pch = 19, col = COL, lty = 1, lwd = 1.5)
>>
>> # The next step would be to create a method for different cluster objects,
>> but thats for another day...
>>
>>
>> #--------------------------------------------
>>
>> Any suggestions on how to do this ?
>>
>> Thanks,
>> Tal
>>
>>
>>
>> ----------------Contact
>> Details:-------------------------------------------------------
>> Contact me: Tal.Galili_at_gmail.com | 972-52-7275845
>> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
>> www.r-statistics.com (English)
>>
>> ----------------------------------------------------------------------------------------------
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>
>
> --
> Drs. Paul Hiemstra
> Department of Physical Geography
> Faculty of Geosciences
> University of Utrecht
> Heidelberglaan 2
> P.O. Box 80.115
> 3508 TC Utrecht
> Phone: +3130 274 3113 Mon-Tue
> Phone: +3130 253 5773 Wed-Fri
> http://intamap.geo.uu.nl/~paul
> http://nl.linkedin.com/pub/paul-hiemstra/20/30b/770
>
>

        [[alternative HTML version deleted]]



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 16 Jun 2010 - 10:39:10 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 16 Jun 2010 - 11:50:32 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive