[R] ggplot2 rose diagram
Tim Howard
tghoward at gw.dec.state.ny.us
Wed Mar 10 15:05:39 CET 2010
To answer two of my own questions to get them into the archives (I am slowly getting the hang of ggplot):
Q1. use "opts(axis.text.x = theme_text(size=xx))" to change font size of the bar labels:
library(ggplot2)
set.seed(5)
dat <- sample(1:8,100,replace=TRUE)
smp <- ggplot(data.frame(dat), aes(x=factor(dat),fill=factor(dat))) +
geom_bar(width=1) +
opts(axis.text.x = theme_text(size = 18))
smp + coord_polar()
Q3. calculate the frequencies themselves and use stat="identity" inside the aes call:
L <- table(dat)
L.df <- data.frame(L)
L.df <- cbind(L.df, "SQRrelFreq" = sqrt(L.df[,2]/sum(L.df[,2])))
smp2 <- ggplot(L.df, aes(x=dat,y=SQRrelFreq, stat="identity", fill=dat)) +
geom_bar(width=1) +
opts(axis.text.x = theme_text(size = 18))
smp2 + coord_polar()
Cheers,
Tim
>>> Tim Howard 3/9/2010 9:25 AM >>>
Dear R gurus -
consider this plot:
library(ggplot2)
dat <- sample(1:8,100,replace=TRUE)
smp <- ggplot(data.frame(dat), aes(x=factor(dat),fill=factor(dat))) + geom_bar(width=1)
smp + coord_polar()
Q1. How do I change the font size and weight of bar labels (1,2,3...)? I've been wallowing in the 'Themes' structure and I just can't figure out the correct place to change the definitions. Along these same lines, what does 'strip' mean when referring to strip text?
Q2. How can I move the legend defining bar height into the plot, so that it overlays the lines they refer to?
Consider the same figure using Circstats:
library(CircStats)
dat.rad <- (dat*((2*pi)/8)) -(2*pi)/16
rose.diag(dat.rad, bins = 8) #note the origin is to the right rather than on top
Q3. The key difference is that CircStats uses an area-based calculation for the size of each slice, which makes for a different presentation than ggplot2. Any suggestions on how to use this calculation method in the ggplot framework?
Thanks in advance for your help.
Tim Howard
More information about the R-help
mailing list