code: def axis_labels(xtitle, 
                  ytitle, 
                  xsuffix="continuous", 
                  ysuffix="continuous",
                  xkwargs={},
                  ykwargs={}):
    
  
    exec "xfunc = scale_x_%s" % xsuffix
    exec "yfunc = scale_y_%s" % ysuffix
    return (
      xfunc(name=esc(xtitle), **xkwargs) + 
      yfunc(name=esc(ytitle), **ykwargs)
    )
docs: Helper function to create reasonable axis labels
  
    @param xtitle String for the title of the X axis.  Automatically escaped
    @param ytitle String for the title of the Y axis.  Automatically escaped
    @param xsuffix Suffix string appended to "scales_x_" to define the type of x axis
                   Default: "continuous"
    @param ysuffix Suffix string appended to "scales_y_" to define the type of y axis
                   Default: "continuous"
    @param xkwargs keyword arguments to pass to scales_x_* function
    @param xkwargs keyword arguments to pass to scales_x_* function
    @return GGStatements
  
    For example:
      
        p = ggplot(...)
        p += axis_labels("Dataset Size (MB)", 
                         "Latency (sec)", 
                         "log10",  
                         xkwargs=dict(breaks=[0, 10, 100, 5000]))