PSJ
2008-Dec-22 14:02 UTC
[R] Hmisc Dotplot with confidence intervals and panel.points problem
Hello useRs, I have a question regarding the function Dotplot from the Hmisc package: I want two things: 1) confidence intervals around the dots 2) some additional "annotation" points plotted in the graphic I can easily achieve (1) by constructing an appropriate object with Cbind. But for (2) when I use the panel=function argument the confidence intervals of the original plot are gone. This is my (simplified) code: Dotplot( resultrow ~ Cbind(ESTIM, L95, U95), data=results, abline=list(v=0), scales=list( y=list( labels=paste(as.character(foo$bar), at=results$nranalysis, cex=0.5 ) ), xlab="some label", ylab="", xlim=c(-10,10), main=paste("a title"), subscripts = T, panel=function(...) { #panel.xYplot(...) panel.points(x=rep(9, length(toobig)), y=results$noanalysis[toobig], pch=62) panel.dotplot(...) } ) I tried a number modifications of this code but without success. I'm sure I'm doing something wrong here, but I cannot figure it out... any ideas? Thanks in advance! Peter Background information: ======================My problem is that some of the values to be plotted have a big range, so that one cannot see what is happening near zero (which is of more interest for me), because the x-axis is properly scaled by R. So I use xlim to restrict drawing to -10 to 10. But then some points and confidence intervals are no more visible. So I decided to put a character ">" at x-value 9 for the ones lying above 10 and the code above leads to the correct plotting of the original data and markers in the right places but the confidence intervals are gone. I guess that the confidence intervals are themselves plotted by a panel function which in some way gets overwritten by my custom one. System Information: ==================> sessionInfo() R version 2.7.2 (2008-08-25) i386-pc-mingw32 locale: LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252 attached base packages: [1] stats graphics grDevices datasets tcltk utils methods [8] base other attached packages: [1] svSocket_0.9-5 TinnR_1.0.2 R2HTML_1.59 Hmisc_3.4-4 loaded via a namespace (and not attached): [1] cluster_1.11.11 grid_2.7.2 lattice_0.17-17 svMisc_0.9-5 [5] tools_2.7.2 LOVE at LYCOS ist jetzt ganz neu ? melde dich kostenlos an, lerne neue Leute kennen und finde deinen Flirt! http://love.lycos.de/start.action
Frank E Harrell Jr
2008-Dec-22 14:18 UTC
[R] Hmisc Dotplot with confidence intervals and panel.points problem
PSJ wrote:> Hello useRs, > I have a question regarding the function Dotplot from the Hmisc package: I want two things: > 1) confidence intervals around the dots > 2) some additional "annotation" points plotted in the graphic > > I can easily achieve (1) by constructing an appropriate object with Cbind. But for (2) when I use the panel=function argument the confidence intervals of the original plot are gone. > > This is my (simplified) code: > > Dotplot( > resultrow ~ Cbind(ESTIM, L95, U95), > data=results, > abline=list(v=0), > scales=list( > y=list( > labels=paste(as.character(foo$bar), > at=results$nranalysis, > cex=0.5 > ) > ), > xlab="some label", > ylab="", > xlim=c(-10,10), > main=paste("a title"), > subscripts = T, > panel=function(...) > { #panel.xYplot(...) > panel.points(x=rep(9, length(toobig)), y=results$noanalysis[toobig], pch=62) > panel.dotplot(...) > } > ) > I tried a number modifications of this code but without success. > I'm sure I'm doing something wrong here, but I cannot figure it out... any ideas? > > Thanks in advance! > PeterPeter, The panel function must run panel.Dotplot(...) and not panel.dotplot. Inside panel you can run whatever else you need. Frank> > > > > > > > > > > > > > > > > Background information: > ======================> My problem is that some of the values to be plotted have a big range, so that one cannot see what is happening near zero (which is of more interest for me), because the x-axis is properly scaled by R. So I use xlim to restrict drawing to -10 to 10. But then some points and confidence intervals are no more visible. So I decided to put a character ">" at x-value 9 for the ones lying above 10 and the code above leads to the correct plotting of the original data and markers in the right places but the confidence intervals are gone. I guess that the confidence intervals are themselves plotted by a panel function which in some way gets overwritten by my custom one. > > > System Information: > ==================>> sessionInfo() > R version 2.7.2 (2008-08-25) > i386-pc-mingw32 > > locale: > LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252 > > attached base packages: > [1] stats graphics grDevices datasets tcltk utils methods > [8] base > > other attached packages: > [1] svSocket_0.9-5 TinnR_1.0.2 R2HTML_1.59 Hmisc_3.4-4 > > loaded via a namespace (and not attached): > [1] cluster_1.11.11 grid_2.7.2 lattice_0.17-17 svMisc_0.9-5 > [5] tools_2.7.2 > > LOVE at LYCOS ist jetzt ganz neu ? melde dich kostenlos an, lerne neue Leute kennen und finde deinen Flirt! http://love.lycos.de/start.action > > > ------------------------------------------------------------------------ > > ______________________________________________ > 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.-- Frank E Harrell Jr Professor and Chair School of Medicine Department of Biostatistics Vanderbilt University
PSJ
2008-Dec-22 15:03 UTC
[R] Hmisc Dotplot with confidence intervals and panel.points problem
Dear Frank, thanks for your fast answer...> The panel function must run panel.Dotplot(...) and not panel.dotplot. > Inside panel you can run whatever else you need. > > Frankthanks a lot, this made it work! Cheers, Peter