Bumps chart in R
Thank you Thierry! That was very helpfull
I have added "geom_point" which makes the lineending look more round.
Also - since the chart becomes verye clustered I also added text to
the right.
like so:
ggplot(df, aes(x = tal, y = value, label = text, group = text, size =
size, col = Change))+
geom_line()+
geom_text(data = subset(df, tal=="tal1"),size=3, hjust=1, vjust=0)+
geom_text(data = subset(df, tal=="tal2"),hjust=-1, size=3)+
geom_point() + scale_x_discrete("Change from time to time") +
scale_y_continuous("Points") +
theme_bw()+
opts(legend.position="none")+
opts(title="As time went by")+
opts(plot.title=theme_text(vjust=0,size=20))+
scale_colour_manual(values = c("red", "black", "blue"))
Thanks for all your help!
On Thu, May 7, 2009 at 1:17 PM, ONKELINX, Thierry
<Thierry.ONKELINX at inbo.be> wrote:
Dear Andreas and Mike,
You need to use scale_colour_manual() if you want to set the colours yourself. Ggplot2 interpretes the "col" variable in the dataset as an ordinairy factor.
library(ggplot2)
df0 <- data.frame(text = letters[1:21], tal1 = c(rnorm (20,5,2), 5), tal2 = c(rnorm (20,6,3), 5))
df0$dif <- df0$tal2 - df0$tal1
df <- melt(data = df0, id.vars = c('text', 'dif'), variable_name = 'tal')
df$Change <- factor(ifelse(df$dif>0,'Up',ifelse(df$dif<0,'Down','Stable')), levels = c("Up", "Stable", "Down"))
df$size <- abs(df$dif)
ggplot(df, aes(x = tal, y = value, label = text, group = text, size = size, col = Change)) + geom_line() + geom_text(data = subset(df, tal=="tal1"), size=3, hjust=2, vjust=0) + scale_x_discrete("Change from time to time") + scale_y_continuous("Points") + theme_bw()+ opts(legend.position="none")+ opts(title="As time went by\n") +opts(plot.title=theme_text(vjust=0,size=20)) + scale_colour_manual(values = c("red", "black", "blue"))
HTH,
Thierry
----------------------------------------------------------------------------
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx at inbo.be
www.inbo.be
To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of.
~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data.
~ Roger Brinner
The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
-----Oorspronkelijk bericht-----
Van: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Namens Andreas Christoffersen
Verzonden: donderdag 7 mei 2009 12:22
Aan: Mike Lawrence; r-help at r-project.org; ggplot2 at googlegroups.com
Onderwerp: Re: [R] Bumps chart in R
On Thu, May 7, 2009 at 2:15 AM, Mike Lawrence <Mike.Lawrence at dal.ca> wrote:
(cross posting to the ggplot2 group for posterity) Here's how I'd approach it: library(ggplot2) text = letters[1:20] tal1 = rnorm (20,5,2) tal2 = rnorm (20,6,3) dif = tal2-tal1 df0 = data.frame(text,tal1,tal2) df = melt( ? ? ? ?data = df0 ? ? ? ?, id.vars = 'text' ? ? ? ?, variable_name = 'tal' ) df$dif = dif df$col = ifelse(dif>0,'red',ifelse(dif<0,'blue','black')) df$size = abs(dif) # draw the plot Unfortunately it's not perfect: (1) col isn't being interpreted literally, so instead of truly red & blue. (2) the lines ends are square whereas usually they're rounded. (3) attempting to remove the legend via opts(legend.position="none") seems to fail.
Thank you with your melted data I was able to come very close to what I want. legen.posistion="none" works for me... Annonying that colours don't work like expected... It seams to be a frequent concern. My code: qplot(tal,value,data=df,group=text,geom="line",size=size,colour=col,xlab="Change from time to time", ylab = "Points")+ geom_text(aes(label=text),subset(df,tal=="tal1"),size=3,hjust=2,vjust=0)+ theme_bw()+ opts(legend.position="none")+ opts(title="As time went by") +opts(plot.title=theme_text(vjust=0,size=20))
______________________________________________ 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. Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver weer en binden het INBO onder geen enkel beding, zolang dit bericht niet bevestigd is door een geldig ondertekend document. The views expressed in ?this message and any annex are purely those of the writer and may not be regarded as stating an official position of INBO, as long as the message is not confirmed by a duly signed document.