[R] Performance (speed) of ggplot
Christopher Battles
CBattles at startllc.com
Thu Sep 25 20:30:08 CEST 2014
Hello list,
I have been working on learning ggplot for its extraordinary flexibility compared to base plotting and have been developing a function to create a "Minitab-like" process capability chart.
*sigh* some of the people I interface with can only understand the data when it is presented in Minitab format
The function creates a ggplot container to hold 10 ggplot items which are the main process capability chart, a Q-Q plot, and the text boxes with all the capabilities data. When I run the function, the elapsed time is on the order of 3 seconds, the gross majority of which is user time. sys time is very small. A bit of hacking shows that the calls to
gt1 <- ggplot_gtable(ggplot_build(p)),
etc., each take on the order of 1/3 of a second. These times are on a 3.2GHz Xeon workstation. I'd like to see the entire function complete in less than a second. My questions are: 1) Am I misusing ggplot, hence the performance hit? 2) Is there any way to increase the speed of this portion of the code? 3) Am I simply asking ggplot to crunch so much that it is inevitable that it will take a while to process?
To that end, the function, vectis.cap(), can be downloaded from http://pastebin.com/05s5RKYw . It runs to 962 lines of code, so I won't paste it here. The offending ggplot_gtable calls are at lines 909 - 918.
Usage:
vectis.cap(chickwts$weight, target = 300, USL = 400, LSL = 100)
Thank you,
Christopher Battles
More information about the R-help
mailing list