stackpoly | R Documentation |
Plot one or more columns of numeric values as the top edges of polygons instead of lines.
stackpoly(x,y=NULL,main="",xlab="",ylab="",xat=NA,xaxlab=NA,
xlim=NA,ylim=NA,lty=1,lwd=1,border=NA,col=NULL,staxx=FALSE,stack=FALSE,
axis2=TRUE,axis4=TRUE,padj=0,...)
x |
A numeric data frame or matrix with the ‘x’ values. If ‘y’ is NULL, these will become the ‘y’ values and the ‘x’ positions will be the integers from 1 to dim(x)[1]. |
y |
The ‘y’ values. |
main |
The title for the plot. |
xlab,ylab |
x and y axis labels for the plot. |
xat |
Where to put the optional xaxlabs. |
xaxlab |
Optional labels for the x positions. |
xlim |
Optional x limits. |
ylim |
Optional y limits. |
lty |
Line type for the polygon borders. |
lwd |
Line width for the polygon borders. |
border |
Color for the polygon borders. |
col |
Color to fill the polygons. If NULL, ‘rainbow’ will be called to generate the colors. If NA, the polygons will not be filled. |
staxx |
Whether to call ‘staxlab’ to stagger the x axis labels. |
stack |
Whether to stack the successive values on top of each other. |
axis2 |
Whether to display the left ordinate on the plot. |
axis4 |
Whether to display the right ordinate on the plot. |
padj |
Vertical justfication of the x axis labels, defaulting to "top". Can be a vector with an element for each label. |
... |
Additional arguments passed to ‘plot’. |
‘stackpoly’ is similar to a line plot with the area under the lines filled with color(s). Ideally, each successive set of y values is greater than the values in the previous set so that the polygons form a rising series of crests. If ‘stack’ is TRUE, this is not a problem unless some values of ‘x’ are negative.
If ‘x’ or ‘y’ is a vector, not a matrix or list, the values will be displayed as a "waterfall plot".
The options for ‘axis2’ and ‘axis4’ can be used to produce panel plots. See the last example.
nil
Jim Lemon and Thomas Petzoldt (waterfall plot option) - thanks to Phil Novack-Gottshall for the mismatched x and y fix
polygon
testx<-matrix(abs(rnorm(100)),nrow=10)
stackpoly(matrix(cumsum(testx),nrow=10),main="Test Stackpoly I",
xaxlab=c("One","Two","Three","Four","Five",
"Six","Seven","Eight","Nine","Ten"),border="black",staxx=TRUE)
stackpoly(testx,main="Test Stackpoly II",
xaxlab=c("One","Two","Three","Four","Five",
"Six","Seven","Eight","Nine","Ten"),border="black",
staxx=TRUE,stack=TRUE)
layout(matrix(1:2,nrow=1))
oldmar<-par(mar=c(5,4,4,0))
stackpoly(rev(sort(testx-mean(testx))),
main="Waterfall Plot (x-mean)",xat=seq(10,90,by=10),
xlab="Index",ylab="Value",lwd=3,col="green",border="black",
axis4=FALSE)
ylim<-par("usr")[3:4]
par(mar=c(5,0,4,4))
stackpoly(rev(sort((testx-mean(testx))/sd(as.vector(testx)))),
ylim=ylim,main="Waterfall Plot ((x-mean)/sd)",xat=seq(10,90,by=10),
xlab="Index",lwd=3,col="lightblue",border="black",axis2=FALSE)
par(oldmar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.