[R] barchart() {Lattice} help.
P Ehlers
ehlers at ucalgary.ca
Fri Nov 27 04:38:42 CET 2009
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 <pengcaimaillist at 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 <ehlers at 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 <
>>>>> dwinsemius at 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 <ehlers at 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 <ehlers at 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 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.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ______________________________________________
>>>>>>>>>>>
>>>>>>>> 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.
>>>>>>>>
>>>>>>>>
>>>>>>>> [[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.
>>>>>>>
>>>>>>> David Winsemius, MD
>>>>>>>
>>>>>> Heritage Laboratories
>>>>>> West Hartford, CT
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>
>
More information about the R-help
mailing list