double tickLabelWidth = this.estimateMaximumTickLabelWidth(g2, this
.getTickUnit());
// start with the current tick unit...
final TickUnitSource tickUnits = this.getStandardTickUnits();
final TickUnit unit1 = tickUnits.getCeilingTickUnit(this.getTickUnit());
final double x1 = this.valueToJava2D(shift + unit1.getSize(), dataArea,
edge);
final double unit1Width = Math.abs(x1 - zero);
// then extrapolate...
final double guess = (tickLabelWidth / unit1Width) * unit1.getSize();
DateTickUnit unit2 = (DateTickUnit) tickUnits.getCeilingTickUnit(guess);
final double x2 = this.valueToJava2D(shift + unit2.getSize(), dataArea,
edge);
final double unit2Width = Math.abs(x2 - zero);
tickLabelWidth = this.estimateMaximumTickLabelWidth(g2, unit2);