An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/712c8a77/attachment-0001.pl>
barchart() {Lattice} help.
18 messages · Peng Cai, David Winsemius, Peter Ehlers +1 more
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/687fb49e/attachment-0001.pl>
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/4d07adcf/attachment-0001.pl>
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
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/0ed02a59/attachment-0001.pl>
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
Cannot reproduce. Seems to work as documented. Maybe your code (whatever it might be) is not correct?
David.
On Nov 26, 2009, at 6:53 PM, 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
>
> 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
>
>
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/a67625c7/attachment-0001.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/4b6faa2e/attachment-0001.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/df8761d6/attachment-0001.pl>
Peng, Did you try the code I sent? If not, why not? If you want equally spaced grid lines, use panel.grid() in place of panel.abline(). BTW, I don't understand what that "title=..." stuff in your auto.key() call is supposed to do. I think it just results in title=NULL. -Peter Ehlers
Peng Cai wrote:
Currently I'm trying and I'm looking to draw lines y=-3, y=-2,..., y=8:
Data:
Sample Col1 Col2 Col3
Row1 -2 4 -1
Row2 3 -2 4
Row3 3 5 -2
Row4 4 1 -1
Code:
library(lattice)
dta<-read.table("data.txt", header=TRUE, row.names="Sample")
coltemp=c(619,376,497,598,124,92,402)
myYscale <- seq(-10, 10, 1)
barchart(data.matrix(dta),
horizontal=FALSE,
stack=TRUE,
par.settings = simpleTheme(col = colors()[coltemp]),
auto.key=list(space="right",
title=names(dimnames(dta))[2]),
border=NA,
main="NextGen - 2025 Monthly Average PM2.5 Contribution at ATL",
ylab="Speciated PM2.5 Contribution (?g/m3)",
xlab="Month",
box.ratio=2.5,
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
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/3d90589c/attachment-0001.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/34e7952a/attachment-0001.pl>
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
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20091126/dcd2829e/attachment-0001.pl>
On Fri, Nov 27, 2009 at 9:21 AM, Peng Cai <pengcaimaillist at 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 <ehlers at 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 <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
? ? ? ?[[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.