Re: [R] Draw abbreviated key (lattice, xyplot)
Deepayan, Both auto.key and simpleKey are convenience tools to make key drawing easy in 'typical' cases. For more flexibility, define the key as a list (the structure is described under 'key' in ?xyplot). You may want to look at ?Rows as well, in conjunction with trellis.par.get(). See ?splom and ?cloud for examples. You are not very explicit in your description, but perhaps your only problem with your second solution is that the first 5 levels are in alphabetical order (but you haven't said what order you want them to be in). This is an artifact of R's factor() function, where the levels are by default factor(x, levels = sort(unique.default(x), na.last = TRUE), ... So your problem may be solved simply by redefining your country variable appropriately: yourdata$country - factor(as.character(yourdata$country), levels = c('USA', 'Germany', ... )) (the as.character() is probably redundant) Thank you very much - this solves my problem. Putting the countries of interest first has two benefits a) different colors are assigned to them b) including just first n of them in the key using simpleKey is easy As I am more used a little different notation to construct the levels in the order I want. t-transform(t,country=factor(country, levels=unique(c(subset(country,year==1997),unique(country) where subset(country,year==1997) are the countries I want to be first unique(country) after that ensures that I include all the countries and no NAs are introduced This is how I plot the abbreviated key then attach(t) xyplot(papers~year, groups=country, type='l', key=simpleKey(levels(country)[1:10],columns=2,lines=T,points=F)) Thanks again, Vaclav Hope that helps, Deepayan On Thursday 18 March 2004 09:42, Vaclav Petricek wrote: Hello I have been experimenting with xyplot, reading the help and googling but I am still unable to draw an abbreviated key. I would like to display key for a few particular countries. My dataset looks like this year paperscountry papers.total 1 1988403USA 551 2 1988 31 United Kingdom 551 3 1988 24 Canada 551 4 1988 20Netherlands 551 5 1988 19 Israel 551 6 1988 16Germany 551 7 1988 13 France 551 8 1988 10 Italy 551 9 1988 8Switzerland 551 10 1988 5 Japan 551 11 1988 5Denmark 551 12 1988 3 Spain 551 13 1988 3 Russia 551 14 1988 2 Sweden 551 15 1988 2 Poland 551 16 1988 2Finland 551 17 1988 2 Brasil 551 18 1988 2 Australia 551 19 1988 1 Thailand 551 20 1988 1 Norway 551 21 1988 1 Mexico 551 22 1988 1Ireland 551 23 1988 1 Greece 551 24 1989649USA 926 25 1989 53 United Kingdom 926 26 1989 43 France 926 27 1989 37 Canada 926 28 1989 36Germany 926 29 1989 28Netherlands 926 30 1989 19 Sweden 926 [...] I use xyplot to show how many papers xyplot(papers~year,groups=country,type='l',auto.key=T) produces an extremely long key xyplot(papers~year,groups=country,type='l',key=simpleKey(levels(as. factor(country))[1:5])) shows *alphabetically* first five countries in the key xyplot(papers~year,groups=country,type='l',key=simpleKey(c('USA','G ermany'))) displays correct countries but the colors obviously do not match. Could you please point me in the right direction? Vaclav __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
[R] Draw abbreviated key (lattice, xyplot)
Hello I have been experimenting with xyplot, reading the help and googling but I am still unable to draw an abbreviated key. I would like to display key for a few particular countries. My dataset looks like this year paperscountry papers.total 1 1988403USA 551 2 1988 31 United Kingdom 551 3 1988 24 Canada 551 4 1988 20Netherlands 551 5 1988 19 Israel 551 6 1988 16Germany 551 7 1988 13 France 551 8 1988 10 Italy 551 9 1988 8Switzerland 551 10 1988 5 Japan 551 11 1988 5Denmark 551 12 1988 3 Spain 551 13 1988 3 Russia 551 14 1988 2 Sweden 551 15 1988 2 Poland 551 16 1988 2Finland 551 17 1988 2 Brasil 551 18 1988 2 Australia 551 19 1988 1 Thailand 551 20 1988 1 Norway 551 21 1988 1 Mexico 551 22 1988 1Ireland 551 23 1988 1 Greece 551 24 1989649USA 926 25 1989 53 United Kingdom 926 26 1989 43 France 926 27 1989 37 Canada 926 28 1989 36Germany 926 29 1989 28Netherlands 926 30 1989 19 Sweden 926 [...] I use xyplot to show how many papers xyplot(papers~year,groups=country,type='l',auto.key=T) produces an extremely long key xyplot(papers~year,groups=country,type='l',key=simpleKey(levels(as.factor(country))[1:5])) shows *alphabetically* first five countries in the key xyplot(papers~year,groups=country,type='l',key=simpleKey(c('USA','Germany'))) displays correct countries but the colors obviously do not match. Could you please point me in the right direction? Vaclav __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Re: [R] Draw abbreviated key (lattice, xyplot)
Both auto.key and simpleKey are convenience tools to make key drawing easy in 'typical' cases. For more flexibility, define the key as a list (the structure is described under 'key' in ?xyplot). You may want to look at ?Rows as well, in conjunction with trellis.par.get(). See ?splom and ?cloud for examples. You are not very explicit in your description, but perhaps your only problem with your second solution is that the first 5 levels are in alphabetical order (but you haven't said what order you want them to be in). This is an artifact of R's factor() function, where the levels are by default factor(x, levels = sort(unique.default(x), na.last = TRUE), ... So your problem may be solved simply by redefining your country variable appropriately: yourdata$country - factor(as.character(yourdata$country), levels = c('USA', 'Germany', ... )) (the as.character() is probably redundant) Hope that helps, Deepayan On Thursday 18 March 2004 09:42, Vaclav Petricek wrote: Hello I have been experimenting with xyplot, reading the help and googling but I am still unable to draw an abbreviated key. I would like to display key for a few particular countries. My dataset looks like this year paperscountry papers.total 1 1988403USA 551 2 1988 31 United Kingdom 551 3 1988 24 Canada 551 4 1988 20Netherlands 551 5 1988 19 Israel 551 6 1988 16Germany 551 7 1988 13 France 551 8 1988 10 Italy 551 9 1988 8Switzerland 551 10 1988 5 Japan 551 11 1988 5Denmark 551 12 1988 3 Spain 551 13 1988 3 Russia 551 14 1988 2 Sweden 551 15 1988 2 Poland 551 16 1988 2Finland 551 17 1988 2 Brasil 551 18 1988 2 Australia 551 19 1988 1 Thailand 551 20 1988 1 Norway 551 21 1988 1 Mexico 551 22 1988 1Ireland 551 23 1988 1 Greece 551 24 1989649USA 926 25 1989 53 United Kingdom 926 26 1989 43 France 926 27 1989 37 Canada 926 28 1989 36Germany 926 29 1989 28Netherlands 926 30 1989 19 Sweden 926 [...] I use xyplot to show how many papers xyplot(papers~year,groups=country,type='l',auto.key=T) produces an extremely long key xyplot(papers~year,groups=country,type='l',key=simpleKey(levels(as. factor(country))[1:5])) shows *alphabetically* first five countries in the key xyplot(papers~year,groups=country,type='l',key=simpleKey(c('USA','G ermany'))) displays correct countries but the colors obviously do not match. Could you please point me in the right direction? Vaclav __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html __ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html