[R] Bar width and labels in barchart

Spilak,Jacqueline [Edm] Jacqueline.Spilak at EC.gc.ca
Fri Jan 25 18:32:59 CET 2008

-----Original Message-----
From: Deepayan Sarkar [mailto:deepayan.sarkar at gmail.com] 
Sent: Thursday, January 24, 2008 9:56 AM
To: Spilak,Jacqueline [Edm]
Cc: r-help at r-project.org
Subject: *****SPAM***** Re: [R] Bar width and labels in barchart

On 1/23/08, Spilak,Jacqueline [Edm] <Jacqueline.Spilak at ec.gc.ca> wrote:
>> Hi everyone
>> I am using barchart to make my graphs.  Here is my code.
>> barchart(percent_below ~ factor(Year)| factor(Season, 
>> levels=unique(Season)),
>>       data= .season_occurrence, origin = 0, layout = c(4, 1), 
>> scales=list(tick.number=ticknum,labels=NULL), ylim=c(0, ymax),
>>         group = factor(Year), xlab= "Year", auto.key = list(points = 
>> FALSE, rectangles = TRUE,space="right",size=2,cex=0.8),
>>         upper_2007 = c(upper_limit_winter, upper_limit_spring, 
>> upper_limit_summer, upper_limit_autumn),
>>         par.settings = list(superpose.polygon = 
>>         lower_2007 = c(lower_limit_winter, lower_limit_spring, 
>> lower_limit_summer, lower_limit_autumn),
>>       panel = function(..., upper_2007,lower_2007) {
>>             panel.abline(h = upper_2007[packet.number()])
>>                 panel.abline(h = lower_2007[packet.number()])
>>             panel.barchart(...)
>>          })
>> This code gives me a graph with four panels, one for each season, and

>> then the percent_below is shown per year in each panel.  I wanted
>> year to have a color associated with it so I added group = 
>> factor(Year) this worked and gave me what I wanted, however now the 
>> bars are very skinny and it is hard to distinguish the colors.  How
>> I make them wider?  My other question is that on the x-axis it list 
>> all years (2000-2007, inclusively) for each panel and they are 
>> squished and non-legable, can I get rid of them?  They are not 
>> necessary as I have the years color coded with the legend at the

>Does having stack=TRUE help?

>If you have year as the x-variable, barchart will try to label them.
>You could control the labels using 'scales', but I think having some
other variable >as the x-variable might be the better solution. We need
a (minimal) reproducible >example to give more definite advice.


Sorry, I completely forgot about an example, so here one is but the
actually data does go up to 2007

Year Season percent_below 
2000 Winter     6.9179870   
2000 Spring     1.6829436  
2000 Summer     1.8463501   
2000 Autumn     3.8184993   
2001 Winter     2.8832806   
2001 Spring     2.5870511   
2001 Summer     0.0000000   
2001 Autumn     4.7248240   

I tried adding stack=TRUE but it didn't do anything, so I am not sure if
I am doing something wrong with the coding. I also tried controling the
labels using scales=list(labels=NULL) but it didn't do anything, so not
sure what I did wrong.  I know that I could have seasons as the
x-variable however in my graph I want each season vs. percent_below by
each year for each season.  I also added a panel because I neede to add
a line to each season to show an upper and lower limit and they were
different for each season.  I have tried barchart(percent_below ~
factor(Season), groups=Year) but it doesn't give me what I want.  So
still not sure how to get rid of the x-axis labels and how to make the
bar widths wider.
Thanks in advance for the help

More information about the R-help mailing list