Reputation: 3904
I'm generating a StackedBarChart using JFreeChart. Depending on the input data I can have a lot of categories (usually between 20 and 40), leading to overlapping of the labels. In the following screenshot you can see the chart with categories from 1 to 38:
I'd like to show some of the category labels as reference, but not all. It would be perfect to show the first and last, and every fifth inbetween. Is this possible?
I can't change the width of the chart, and making the labels smaller does only work if they are so small that you can't read them anymore... Last resort would be to hide the whole category axis...
Thanks for any suggestions!
Upvotes: 4
Views: 7659
Reputation: 5923
One simple solution is to set the Category lables to the backround colour (in this case white).
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setTickLabelPaint("Category 2", Color.white);
domainAxis.setTickLabelPaint("Category 4", Color.white);
This will produce a chart like this
Upvotes: 5
Reputation: 205785
You can use setVerticalTickLabels(true)
on your domain axis, as shown in this example.
Addendum: Oops, the example cited is for a ValueAxis
. For a CategoryAxis
, as used in StackedBarChart
, you have even more flexility with the method setCategoryLabelPositions()
. Typical usage is illustrated in the BarChartDemo1
source, shown here.
Upvotes: 2