On Fri, Nov 27, 2009 at 9:21 AM, Peng Cai <pengcaimaill...@gmail.com> wrote: > @ Peter: I got it, thanks a lot for all your help! And yes, as you said the > "title" option in auto.key is redundant. > > > @ All, Hi: I need to add percentage sign to y-axis labels (like 0%, 20%, > ..., 100%). How can I get it. I'm using barchart() function as given below > along with the data set.
Read ?barchart, specifically the entry for 'scales'. Hint: figure out what the line scales = list(y = list(at = myYscale)), does. -Deepayan > > Data: > Sample Col1 Col2 Col3 > Row1 -20 40 -10 > Row2 30 -20 40 > Row3 30 10 -20 > Row4 20 20 -10 > > R code: > > library(lattice) > dta<-read.table("data.txt", header=TRUE, row.names="Sample") > myYscale <- seq(-140,140,20) > barchart(data.matrix(dta), > horizontal=FALSE, > stack=TRUE, > par.settings = simpleTheme(col = c(2:4)), > auto.key=list(space = 'right', rows = 3, rectangles = TRUE, > points = FALSE ), > scales = list(y = list(at = myYscale)), > panel=function(x,y,...){ > panel.abline(h=c(myYscale), col.line="gray") > panel.barchart(x,y,...)} > ) > > Any help would be greatly appreciated, > Peng > > On Thu, Nov 26, 2009 at 10:38 PM, P Ehlers <ehl...@ucalgary.ca> wrote: > >> As I wrote earlier: >> >> >> "I had to add the rectangles= and points= arguments to >> >> auto.key to get the same key as you had earlier." >> >> and the relevant line in the code was: >> >> >> auto.key = list(space = 'right', rectangles=TRUE, points=FALSE) >> >> -Peter Ehlers >> >> Peng Cai wrote: >> >>> Hello Peter and David, >>> >>> Thanks for your help. I have added what you suggested and its working >>> perfectly fine except: >>> >>> When I add the panel function, the legend changes. In the sense without >>> the >>> panel function the column names are shown with small colored rectangles >>> (on >>> right), but after adding it the rectangles change to tiny un-filled >>> diamonds. Any suggestions? >>> >>> My current code and data is below, >>> >>> Thanks a lot, >>> Peng >>> >>> >>> Data: >>> >>> >>>> Sample Col1 Col2 Col3 >>>> Row1 -2 4 -1 >>>> Row2 3 -2 4 >>>> Row3 3 5 -2 >>>> Row4 4 1 -1 >>>> >>>> Code: >>>> >>>> >>>> >>> >>> >>> >>> >>>> dta<-read.table("data.txt", header=TRUE, row.names="Sample") >>>> coltemp=c(619,376,497) >>>> myYscale <- seq(-10, 10, 1) >>>> barchart(data.matrix(dta), >>>> horizontal=FALSE, >>>> stack=TRUE, >>>> par.settings = simpleTheme(col = colors()[coltemp]), >>>> auto.key=list(space="right"), >>>> border=NA, >>>> panel=function(x,y,...){ >>>> panel.abline(h=c(myYscale), col.line="gray") >>>> panel.barchart(x,y,...) >>>> }, >>>> scales = list(y = list(at = myYscale)) >>>> ) >>>> >>>> >>>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> Thanks, >>> >>> >>>> Peng >>>> >>>> >>>> On Thu, Nov 26, 2009 at 7:23 PM, Peng Cai <pengcaimaill...@gmail.com >>>> >wrote: >>>> >>>> >>>> >>>>> Hi Again, >>>>> >>>>> Before I start getting into what you just suggested, let me confirm if I >>>>> made my point clear previously. I'm looking for horizontal lines similar >>>>> to >>>>> one on the following link (It has parallel lines for each y=200, >>>>> y=400,...): >>>>> >>>>> http://pfiles.5min.com/images/176735/176734313.jpg >>>>> >>>>> What you just suggested can solve this purpose? Thanks, >>>>> >>>>> Peng >>>>> >>>>> >>>>> On Thu, Nov 26, 2009 at 7:09 PM, Peter Ehlers <ehl...@ucalgary.ca> >>>>> wrote: >>>>> >>>>> >>>>> >>>>>> Peng Cai wrote: >>>>>> >>>>>> >>>>>> >>>>>>> Thanks David, I tried panel.abline(h=somevalue) -- both inside and >>>>>>> outside >>>>>>> of barchart() function but its not working. Any suggestions? >>>>>>> >>>>>>> Peng >>>>>>> >>>>>>> >>>>>>> >>>>>> Here's some code related to the data you posted earlier. >>>>>> >>>>>> >>>>>> barchart(data.matrix(dta), horizontal = FALSE, stack = TRUE, >>>>>> par.settings = simpleTheme(col = 2:4), >>>>>> panel=function(x,y,...){ >>>>>> panel.abline(h=c(-2,0,3,4), col.line="gray") >>>>>> panel.barchart(x,y,...) >>>>>> >>>>>> }, >>>>>> scales = list(y = list(at = -2:8)), >>>>>> auto.key = list(space = 'right', rectangles=TRUE, >>>>>> points=FALSE) >>>>>> ) >>>>>> >>>>>> If you want the gray lines in front of the bars, switch the >>>>>> order of the panel functions. With lattice, it's all about >>>>>> what goes into each panel (you have only one panel here). >>>>>> If you want more than one thing in a panel, you have to set >>>>>> up a function to do those things. >>>>>> >>>>>> I had to add the rectangles= and points= arguments to >>>>>> auto.key to get the same key as you had earlier. >>>>>> >>>>>> -Peter Ehlers >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> On Thu, Nov 26, 2009 at 6:42 PM, David Winsemius < >>>>>>> dwinsem...@comcast.net>wrote: >>>>>>> >>>>>>> On Nov 26, 2009, at 6:12 PM, Peng Cai wrote: >>>>>>> >>>>>>> >>>>>>>> Thanks a lot Peter! One more help, is there a similar function >>>>>>>> abline() >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> for >>>>>>>>> barchart(). >>>>>>>>> >>>>>>>>> ?panel.abline >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> I'm trying to add a (light gray colored) horizontal lines, one for >>>>>>>> >>>>>>>> >>>>>>>>> each >>>>>>>>> y-value. >>>>>>>>> >>>>>>>>> Peng >>>>>>>>> >>>>>>>>> On Thu, Nov 26, 2009 at 5:59 PM, Peter Ehlers <ehl...@ucalgary.ca> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Peng Cai wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Hi Peter, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> I'm not sure but it seems "scales" command works only with integer >>>>>>>>>>> values. >>>>>>>>>>> >>>>>>>>>>> If the y-axis values are very small (such as -0.03, -0.02, -0.01, >>>>>>>>>>> 0, >>>>>>>>>>> 0.01,..., 0.08). My current plot has values 0, 0.05, and 0.10 >>>>>>>>>>> only. >>>>>>>>>>> But >>>>>>>>>>> I >>>>>>>>>>> need it to extend it to negative numbers and reduce the scale >>>>>>>>>>> width >>>>>>>>>>> (like >>>>>>>>>>> -0.04, -0.02, 0, 0.02,...). >>>>>>>>>>> >>>>>>>>>>> Can I change these too? Thanks! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Use, e.g. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> myYscale <- seq(-0.04, 0.08, 0.02) >>>>>>>>>> barchart(..., >>>>>>>>>> ..., >>>>>>>>>> scales = list(y = list(at = myYscale)), >>>>>>>>>> ... >>>>>>>>>> ) >>>>>>>>>> >>>>>>>>>> -Peter Ehlers >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Peng >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Thu, Nov 26, 2009 at 3:18 PM, Peter Ehlers <ehl...@ucalgary.ca >>>>>>>>>>> > >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Peng Cai wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> Hi R Users, >>>>>>>>>>>> >>>>>>>>>>>> I'm trying to plot a stacked barplot. Here is data: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Sample Col1 Col2 Col3 >>>>>>>>>>>>> Row1 -2 4 -1 >>>>>>>>>>>>> Row2 3 -2 4 >>>>>>>>>>>>> Row3 3 5 -2 >>>>>>>>>>>>> Row4 4 1 -1 >>>>>>>>>>>>> >>>>>>>>>>>>> I'm using following R code: >>>>>>>>>>>>> >>>>>>>>>>>>> library(lattice) >>>>>>>>>>>>> dta<-read.table("data.txt", header=TRUE, row.names="Sample") >>>>>>>>>>>>> barchart(data.matrix(dta), >>>>>>>>>>>>> horizontal=FALSE, >>>>>>>>>>>>> stack=TRUE, >>>>>>>>>>>>> col=2:4, >>>>>>>>>>>>> auto.key=list(space="right", >>>>>>>>>>>>> title=names(dimnames(dta))[2]) >>>>>>>>>>>>> ) >>>>>>>>>>>>> >>>>>>>>>>>>> Above code is working fine, but I need help with: >>>>>>>>>>>>> >>>>>>>>>>>>> 1) Legend boxes have default colors, whereas I'm looking them to >>>>>>>>>>>>> match >>>>>>>>>>>>> with >>>>>>>>>>>>> barplot colors (col=2:4). >>>>>>>>>>>>> >>>>>>>>>>>>> replace the line >>>>>>>>>>>>> >>>>>>>>>>>>> col = 2:4, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> with >>>>>>>>>>>> >>>>>>>>>>>> par.settings = simpleTheme(col = 2:4), >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2) Can I increase scale for y axis, like currently it plotting >>>>>>>>>>>> >>>>>>>>>>>> -2,0,2,4,... >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> I would like it as -2,-1,0,1,... >>>>>>>>>>>>> >>>>>>>>>>>>> add the line >>>>>>>>>>>>> >>>>>>>>>>>>> scales = list(y = list(at = -2:8)), >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> or whatever tick locations you prefer. >>>>>>>>>>>> >>>>>>>>>>>> -Peter Ehlers >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Any help would be greatly appreciated, >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Peng >>>>>>>>>>>>> >>>>>>>>>>>>> [[alternative HTML version deleted]] >>>>>>>>>>>>> >>>>>>>>>>>>> ______________________________________________ >>>>>>>>>>>>> R-help@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. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> ______________________________________________ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> R-help@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. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [[alternative HTML version deleted]] >>>>>>>>>> >>>>>>>>>> >>>>>>>>> ______________________________________________ >>>>>>>>> R-help@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. >>>>>>>>> >>>>>>>>> David Winsemius, MD >>>>>>>>> >>>>>>>>> >>>>>>>> Heritage Laboratories >>>>>>>> West Hartford, CT >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>> >>> >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.