log transformation: axis vs values
- sometimes it is useful to transform the values
- in ggplot you have the choice between transforming the values or the axis
- here is an example to compare both
- the data set movie is part of the ggplot package, additional used are the gridExtra package (grid.arrange), the scales package (labels formatter "dollar")
- in the beginning a cut the year var in 15 even spaced intervals
- on the lefthandside is the plot with the transformation of the axis, on the righthandside with transformation of values
movies$years <- cut(movies$year,breaks=15) p <- ggplot(movies, aes(x=years,y=budget,colour=years)) + ## bar filling geom_boxplot(fill="black") + ## add mean points stat_summary(fun.y="mean",geom="point") + ## customize tick labels opts(axis.text.x = theme_text(angle=270,hjust=0,vjust=1)) + ## get rid of the legend opts(legend.position="none") ## log transformation of the y axis p1 <- p + scale_y_continuous(labels=dollar,trans="log") ## compare with ## here we do the transformation while mapping: p2 <- ggplot(movies, aes(x=years,y=log(budget),colour=years)) + geom_boxplot(fill="black") + stat_summary(fun.y="mean",geom="point") + opts(axis.text.x = theme_text(angle=270,hjust=0,vjust=1)) + opts(legend.position="none") ## plot both graphs on one page grid.arrange(p1,p2,ncol=2)
0 comments:
Post a Comment