[R] hist overlay...

2003-03-26 Thread Vasudevan, Geetha
thanks to all for the 2d scatter plot.

i have one more. 

how do i plot 'hist(y1, col="red") and hist(y2,col="blue") in the same window? 

thanks again.

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


Re: [R] hist overlay...

2003-03-26 Thread Jerome Asselin

Do you mean two separate plots in the same window? If so, read the 
documentation on "multiple figure environment" in the chapter on "Graphical 
Procedures" in the manual "An Introduction to R".

Alternately, reading plot help file will lead you to the par help file, which 
will enable you to do "multiple figure environment" and lots more...

Jerome Asselin

On March 26, 2003 11:35 am, Vasudevan, Geetha wrote:
> thanks to all for the 2d scatter plot.
>
> i have one more.
>
> how do i plot 'hist(y1, col="red") and hist(y2,col="blue") in the same
> window?
>
> thanks again.
>
> __
> [EMAIL PROTECTED] mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


Re: [R] hist overlay...

2003-03-26 Thread Ross Ihaka
Vasudevan, Geetha wrote:
thanks to all for the 2d scatter plot.

i have one more. 

how do i plot 'hist(y1, col="red") and hist(y2,col="blue") in the same window? 
Here are a couple of ways to do what you have asked for
(as oppposed to want you want :-).
I'm assuming that you precompute the histograms as follows:

x <- rnorm(100)
y <- rnorm(100)
xh = hist(x, plot=FALSE)
yh = hist(y, plot=FALSE)
You can customize these two "hist" calls anyway you like.

Here is a function which will plot the result as superimposed bars.

hist2v <-
function(xh, yh) {
  plot.new()
  plot.window(xlim=range(xh$breaks, yh$breaks),
  ylim=range(0, xh$density, yh$density))
  rect(xh$breaks[-length(xh$breaks)], 0,
   xh$breaks[-1], xh$density, border="blue")
  rect(yh$breaks[-length(yh$breaks)], 0,
   yh$breaks[-1], yh$density, border="red")
  axis(1)
  axis(2)
}
and one which will plot only the tops of the bars:

hist2v <-
function(xh, yh) {
  plot.new()
  plot.window(xlim=range(xh$breaks, yh$breaks),
  ylim=range(0, xh$density, yh$density))
  nx = length(xh$density)
  ny = length(yh$density)
  lines(rep(xh$breaks, c(1, rep(2, nx - 1), 1)),
rep(xh$density, each = 2), col = "red")
  lines(rep(yh$breaks, c(1, rep(2, ny - 1), 1)),
rep(yh$density, each = 2), col = "blue")
  axis(1)
  axis(2)
}
Either of these functions could be called as

hist2v(xh, yh)

It would be easy to add colour and line texture arguments.

--
Ross Ihaka Email:  [EMAIL PROTECTED]
Department of Statistics   Phone:  (64-9) 373-7599 x 85054
University of Auckland Fax:(64-9) 373-7018
Private Bag 92019, Auckland
New Zealand
__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help


RE: [R] hist overlay...

2003-03-26 Thread Vasudevan, Geetha
Cool, thanks!


-Original Message-
From:   Ross Ihaka [mailto:[EMAIL PROTECTED]
Sent:   Wed 3/26/2003 12:26 PM
To: Vasudevan, Geetha
Cc: [EMAIL PROTECTED]
Subject:Re: [R] hist overlay...
Vasudevan, Geetha wrote:
> thanks to all for the 2d scatter plot.
> 
> i have one more. 
> 
> how do i plot 'hist(y1, col="red") and hist(y2,col="blue") in the same window? 

Here are a couple of ways to do what you have asked for
(as oppposed to want you want :-).

I'm assuming that you precompute the histograms as follows:

x <- rnorm(100)
y <- rnorm(100)
xh = hist(x, plot=FALSE)
yh = hist(y, plot=FALSE)

You can customize these two "hist" calls anyway you like.

Here is a function which will plot the result as superimposed bars.

hist2v <-
function(xh, yh) {
   plot.new()
   plot.window(xlim=range(xh$breaks, yh$breaks),
   ylim=range(0, xh$density, yh$density))
   rect(xh$breaks[-length(xh$breaks)], 0,
xh$breaks[-1], xh$density, border="blue")
   rect(yh$breaks[-length(yh$breaks)], 0,
yh$breaks[-1], yh$density, border="red")
   axis(1)
   axis(2)
}

and one which will plot only the tops of the bars:

hist2v <-
function(xh, yh) {
   plot.new()
   plot.window(xlim=range(xh$breaks, yh$breaks),
   ylim=range(0, xh$density, yh$density))
   nx = length(xh$density)
   ny = length(yh$density)
   lines(rep(xh$breaks, c(1, rep(2, nx - 1), 1)),
 rep(xh$density, each = 2), col = "red")
   lines(rep(yh$breaks, c(1, rep(2, ny - 1), 1)),
 rep(yh$density, each = 2), col = "blue")
   axis(1)
   axis(2)
}

Either of these functions could be called as

hist2v(xh, yh)

It would be easy to add colour and line texture arguments.

-- 
Ross Ihaka Email:  [EMAIL PROTECTED]
Department of Statistics   Phone:  (64-9) 373-7599 x 85054
University of Auckland Fax:(64-9) 373-7018
Private Bag 92019, Auckland
New Zealand

__
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help