I like this approach... One thing is that this probably will produce labels which are not alligned with the common decimal places ("11.234" ... "12.145" instead of "11" ... "12"). There is already a function `ggplot.scales.utils.calc_axis_breaks_and_limits`, which could be  used for this.