In context below:
On Jun 15, 2010, at 4:20 AM, Yogesh Tiwari wrote:
Dear John,
Great thanks,
I would appreciate if any expert can throw more light on it.
Thanks in advance,
Best Regards,
Yogesh
On 6/14/10, John Kane <jrkrid...@yahoo.ca> wrote:
Hi Yogesh,
I think you accidentelly replied only to me and not to the mailing
list.
I'd suggest that you copy your post to me to the list to get input
from some
of the
real experts.
Currently I don't see any provision for differently coloured error
bars in
the the help page but I easilly could be missing something.
Also you have a fairly busy plot there, you might want to consider
having
the cuves in separate panels. Perhaps something like this: you can
probably
do this much better in lattice or ggplot but can give you an idea.
#=========================================================
x=1:7
y=6:12
uperror=y+2
downerror=y-2
opar <- par(mfrow=c(2,2))
errbar(x,y, uperror, downerror,type="l")
errbar(x,y, uperror, downerror, type="l")
errbar(x,y, uperror, downerror, type="l")
errbar(x,y, uperror, downerror, type="l")
par(opar)
#==========================================================
Also we really should have some sample data., It have to be the
entire data
set or even the real data as
long as it has the same format and layout.
Have a look at ?dput for way to include some easily useable data.
Sorrry I'm not more help.
--- On Sun, 6/13/10, Yogesh Tiwari <yogesh....@googlemail.com> wrote:
From: Yogesh Tiwari <yogesh....@googlemail.com>
Subject: Re: [R] how to use 'points' function to plot two curves
with errbar
To: "John Kane" <jrkrid...@yahoo.ca>
Received: Sunday, June 13, 2010, 11:21 PM
Dear John,
Thanks,
I am using errbar in the package Hmisc,
par(new=TRUE), worked between two errbar ploting commands but the
new
problem is now 'color of arrow (bars)', its always black for all
the four
curves whereas I have specified separate color for each curve. I
want to
have similar color of arrow as curve. My command which plots four
curves
and respective errbar subsequently the generated plot is attached
herewith.
Kindly help.
x.val <- as.integer(names(co2mean))
errbar(x.val, co2mean, co2mean + co2sd, co2mean - co2sd, xaxt='n',
col="black", xlab=NA,ylab=NA)# obs error bar
lines(x.val, co2mean, col="black", lwd=2)
par(new=TRUE)
errbar(x.val, co2tm3.month.mean, co2tm3.month.mean + co2sd.tm3,
co2tm3.month.mean - co2sd.tm3, xaxt='n', yaxt='n', col="red",
xlab=NA,ylab=NA)# tm3 error bar
lines(x.val, co2tm3.month.mean, col="red", lwd=2)
par(new=TRUE)
errbar(x.val, co2lsce.month.mean, co2lsce.month.mean + co2sd.lsce,
co2lsce.month.mean - co2sd.lsce, xaxt='n',yaxt='n', col="green",
xlab=NA,ylab=NA)# lsce error bar
lines(x.val, co2lsce.month.mean, col="green", lwd=2)
par(new=TRUE)
errbar(x.val, co2patra1.month.mean, co2patra1.month.mean +
co2sd.actm,
co2patra1.month.mean - co2sd.actm, xaxt='n',yaxt='n', col="blue",
xlab=NA,ylab=NA)# actm error bar
lines(x.val, co2patra1.month.mean, col="blue", lwd=2)
I am not sure I fully understand what is being done since I do not
believe you have included the "co2mean" data being used to drive the
plotting function. If all you want is for errbar to make the error
bars colored the same as the points, then it will be necessary to hack
the code, since looking at the code, the segments() functions within
errbar() are not set up to receive the triple dot (optional arguments)
arguments. It is a very simple matter to fix that, however. The
slightly hacked errbar2 function was tested with the second example
from the errbar:
require(rms) # has side-effect of also loading Hmisc
errbar2 <-
function (x, y, yplus, yminus, cap = 0.015, main = NULL, sub =
NULL,
xlab = as.character(substitute(x)), ylab = if (is.factor(x) ||
is.character(x)) "" else as.character(substitute(y)),
add = FALSE, lty = 1, type = "p", ylim = NULL, lwd = 1, pch =
16,
Type = rep(1, length(y)), ...)
{
if (is.null(ylim))
ylim <- range(y[Type == 1], yplus[Type == 1], yminus[Type ==
1], na.rm = TRUE)
if (is.factor(x) || is.character(x)) {
x <- as.character(x)
n <- length(x)
t1 <- Type == 1
t2 <- Type == 2
n1 <- sum(t1)
n2 <- sum(t2)
omai <- par("mai")
mai <- omai
mai[2] <- max(strwidth(x, "inches")) + 0.25 * .R.
par(mai = mai)
on.exit(par(mai = omai))
plot(NA, NA, xlab = ylab, ylab = "", xlim = ylim, ylim = c(1,
n + 1), axes = FALSE, ...)
axis(1)
w <- if (any(t2))
n1 + (1:n2) + 1
else numeric(0)
axis(2, at = c(seq.int(length.out = n1), w), labels = c(x[t1],
x[t2]), las = 1, adj = 1)
points(y[t1], seq.int(length.out = n1), pch = pch, type = type,
...)
segments(yplus[t1], seq.int(length.out = n1), yminus[t1],
seq.int(length.out = n1), lwd = lwd, lty = lty, ...)
if (any(Type == 2)) {
abline(h = n1 + 1, lty = 2, ...)
offset <- mean(y[t1]) - mean(y[t2])
if (min(yminus[t2]) < 0 & max(yplus[t2]) > 0)
lines(c(0, 0) + offset, c(n1 + 1, par("usr")[4]),
lty = 2, ...)
points(y[t2] + offset, w, pch = pch, type = type,
...)
segments(yminus[t2] + offset, w, yplus[t2] + offset,
w, lwd = lwd, lty = lty, ...)
at <- pretty(range(y[t2], yplus[t2], yminus[t2]))
axis(side = 3, at = at + offset, labels = format(round(at,
6)))
}
return(invisible())
}
if (add)
points(x, y, pch = pch, type = type, ...)
else plot(x, y, ylim = ylim, xlab = xlab, ylab = ylab, pch = pch,
type = type, ...)
xcoord <- par()$usr[1:2]
smidge <- cap * (xcoord[2] - xcoord[1])/2
segments(x, yminus, x, yplus, lty = lty, lwd = lwd, ...)
if (par()$xlog) {
xstart <- x * 10^(-smidge)
xend <- x * 10^(smidge)
}
else {
xstart <- x - smidge
xend <- x + smidge
}
segments(xstart, yminus, xend, yminus, lwd = lwd, lty = lty, ...)
segments(xstart, yplus, xend, yplus, lwd = lwd, lty = lty, ...)
return(invisible())
}
errbar2(c('a','b','d','a - b','a - d','b - d'),
c(cla[1],clb[1],cld[1],cla[1]-clb[1],cla[1]-cld[1],clb[1]-
cld[1]),
c(cla[3],clb[3],cld[3],a.b[2],a.d[2],b.d[2]),
c(cla[2],clb[2],cld[2],a.b[1],a.d[1],b.d[1]),
Type=c(1,1,1,2,2,2), xlab='', ylab='', col=1:3)
Best regards,
Yogesh
On Sat, Jun 5, 2010 at 11:36 PM, John Kane <jrkrid...@yahoo.ca>
wrote:
The first thing we need to know is what "errbar" are you using?
There are at least two, on in the Hmisc package and one in sfsmisc.
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented,
minimal,
self-contained,reproducible code.
I'm not sure what you are trying to do here but perhaps looking at
"new" in
?par might hrlp you.
Example:
plot(1:10, col="red")
par(new=TRUE)
plot(10:1, col="blue")
--- On Sat, 6/5/10, Yogesh Tiwari <yogesh....@googlemail.com> wrote:
From: Yogesh Tiwari <yogesh....@googlemail.com>
Subject: [R] how to use 'points' function to plot two curves with
errbar
To: r-h...@stat.math.ethz.ch
Received: Saturday, June 5, 2010, 10:06 AM
Dear R Users,
I am using R on windows.
how to use 'points' function to plot two curves with
errbar
I am doing like:
x.val <- as.integer(names(co2mean))
errbar(x.val, co2mean, co2mean + co2sd, co2mean - co2sd,
xaxt='n', col=1,
xlab=NA,ylab=NA)# obs error bar
lines(x.val, co2mean, col=1, lwd=2)
errbar(x.val, co2tm3.month.mean, co2tm3.month.mean +
co2sd.tm3,
co2tm3.month.mean - co2sd.tm3, xaxt='n', col=2,
xlab=NA,ylab=NA)# model
error bar
lines(x.val, co2tm3.month.mean, col=2, lwd=2)
Above code replaces first error bar and its line with
second. Kindly help,
how to use 'points' function here so both above can get
over ploted
Thanks,
Regards,
Yogesh
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
West Hartford, CT
______________________________________________
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.