I have a StackedXYAreaChart that looks like the following:
How do I fo
CategoryPlot plot = chart.getCategoryPlot();
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setTickUnit(new NumberTickUnit(300));
Assuming a NumberAxis, set the tick unit to 25. There's a related example here.
axis.setTickUnit(new NumberTickUnit(25));
I found a solution to my own question. I'm using a CustomTickUnit
that formats numbers and adds units to the suffix, e.g. 1000000
becomes 1 GB
.
I set up my tick units with the following code, which spaced them out evenly and formatted them appropriately so that they are very readable:
public void setupRangeAxis(NumberAxis rangeAxis) {
final TickUnits standardUnits = new TickUnits();
standardUnits.add(new CustomTickUnit(1));
standardUnits.add(new CustomTickUnit(10));
standardUnits.add(new CustomTickUnit(100));
standardUnits.add(new CustomTickUnit(1000)); // Kilo
standardUnits.add(new CustomTickUnit(10000));
standardUnits.add(new CustomTickUnit(100000));
standardUnits.add(new CustomTickUnit(1000000)); // Mega
standardUnits.add(new CustomTickUnit(10000000));
standardUnits.add(new CustomTickUnit(100000000));
standardUnits.add(new CustomTickUnit(1000000000)); // Giga
standardUnits.add(new CustomTickUnit(10000000000L));
standardUnits.add(new CustomTickUnit(100000000000L));
standardUnits.add(new CustomTickUnit(1000000000000L)); // Tera
standardUnits.add(new CustomTickUnit(10000000000000L));
standardUnits.add(new CustomTickUnit(100000000000000L));
standardUnits.add(new CustomTickUnit(1000000000000000L)); // Peta
standardUnits.add(new CustomTickUnit(10000000000000000L));
standardUnits.add(new CustomTickUnit(100000000000000000L));
standardUnits.add(new CustomTickUnit(1000000000000000000L)); // Exa
rangeAxis.setStandardTickUnits(standardUnits);
}