pies {caroline} | R Documentation |
Plot pie charts in an XY scatterplot. An overhauled wrapper of the original pie plot function. It is currently very slow: a recommened work around is to plot to something other than the default device (aka png, pdf, etc).
pies(x, show.labels = FALSE, show.slice.labels = FALSE, color.table = NULL, radii = rep(2,length(x)), x0=NULL, y0=NULL, edges = 200, clockwise = FALSE, init.angle = if (clockwise) 90 else 0, density = NULL, angle = 45, border = NULL, lty = NULL, other.color='gray', na.color='white', ...)
x |
a list of named vectors. |
show.labels |
boolean specifying if the pie point lables should be plotted. |
show.slice.labels |
boolean specifying if the pie slice labels should be plotted. |
color.table |
a named vector of colors. names should correspond to all possible levels of x |
radii |
a vector of radii used to size the pie points. |
x0,y0 |
a vector of x and y positions for the pie points. |
edges |
the circular outline of the pie is approximated by a polygon with this many edges. |
clockwise |
logical indicating if slices are drawn clockwise or counter clockwise (i.e., mathematically positive direction), the latter is default. |
init.angle |
number specifying the starting angle (in degrees) for the slices. Defaults to 0 (i.e., 3 o'clock) unless clockwise is true where init.angle defaults to 90 (degrees), (i.e., 12 o'clock). |
density |
the density of shading lines, in lines per inch. The default value of NULL means that no shading lines are drawn. Non-positive values of density also inhibit the drawing of shading lines. |
angle |
the slope of shading lines, given as an angle in degrees (counter-clockwise). |
border |
(possibly vectors) arguments passed to polygon which draws each slice. |
lty |
(possibly vectors) arguments passed to polygon which draws each slice. |
other.color |
color used for x vector elements for names without corresponding names in the color table |
na.color |
color used for x vector elements with missing names |
... |
other arguments passed to polygon |
Pie charts as points on a plot
## these examples are to the default plot window, which can be slow ## try instead to plot to png or pdf for example ## example 1 pies( list( a=nv(c(1,2,3),c('one','two','thre')), b=nv(c(2,2,3),c('one','two','thre')), c=nv(c(1,2,3),c('one','two','thre')) ), x0=c(0,.5,1), y0=c(0,.5,1), radii=6, border=c('gray', 'black', 'red') ) ## example 2 n <- 200 n.groups <- 10 n.subgroups <- 6 grps <- paste('gene',seq(1,n.groups), sep='')[round(runif(n,1,n.groups))] subgrps <- paste('species',seq(1,n.subgroups), sep='')[round(runif(n,1,n.subgroups))] group.df <- cbind.data.frame(grps,subgrps) subgroup.list <- by(group.df, group.df$grps, function(x) x$subgrps) pie.list <- lapply(subgroup.list, table) col.tab <- nv(rainbow(6), unique(subgrps)) pies(x=pie.list, x0=rnorm(n.groups), y0=rnorm(n.groups), radii=10, show.labels=TRUE, show.slice.labels=TRUE, color.table=col.tab) ## example 3 reading from external flat file ## salt.df <- read.delim('/path/to/my/file.tab') ## create a dummy dataset that might live inside the above file salt.df <- data.frame(salinity=rnorm(25,5), temperature=rnorm(25,25),spec_a=rpois(25,4), spec_b=rpois(25,4), spec_c=rpois(25,4), spec_d=rpois(25,4), spec_e=rpois(25,4) ) ## pull out the colnumn names that are specific to pie wedge numbers salt.spec.nms <- names(salt.df)[grep('spec',names(salt.df))] ## turn them into a list pie.list <- lapply(1:nrow(salt.df), function(i) as.table(nv(as.vector(as.matrix(salt.df[i,salt.spec.nms])),salt.spec.nms))) names(pie.list)<- letters[1:25] with(salt.df, pies(x=pie.list, x0=salinity, y0=temperature, radii=2))