* at least as wide as <tt>rangeExtrema(0)</tt> of the specified dataset
* object.
*/
public void adjustAbsRange(Dataset ds) {
if (!rangeOveriddenLow || !rangeOveriddenHigh) {
DatasetRenderer dr = plot.getDatasetRenderer(plot.getDatasets().indexOf(ds));
MipMap m = ds.getMipMapChain().getMipMap(0);
while (m != null) {
if (m.getLevel() > 1 && m.size() < plot.getMaxDrawableDataPoints()) {
break;
}
Interval rangeExtrema = dr.getRangeExtrema(m);
double rangeMin = rangeExtrema.getStart();
double rangeMax = rangeExtrema.getEnd();
// rangeLength = rangeExtrema.length();
setAbsLength(rangeMin, rangeMax);
if (calcRangeAsPercent) {
final double refY = dr.getRange(ds.getFlyweightTuple(0));
double rmin = rangeOveriddenLow ? absRangeMin : rangeMin;
double rmax = rangeOveriddenHigh ? absRangeMax : rangeMax;
double normalizedMin = rangeExtrema.getPercentChange(refY, rmin);
double normalizedMax = rangeExtrema.getPercentChange(refY, rmax);
setAbsRange( normalizedMin, normalizedMax);