我正在使用JFreeChart生成StackedBarChart。根据输入数据,我可以有很多类别(通常在20到40之间),导致标签重叠。 在下面的屏幕截图中,您可以看到包含1到38类别的图表:
我想展示一些类别标签作为参考,但不是全部。显示第一个和最后一个,以及每五个之间是完美的。 这可能吗?
我无法更改图表的宽度,并且使标签变小只有在它们太小而无法再读取它们时才起作用... 最后的办法是隐藏整个类别轴......
感谢您的任何建议!
答案 0 :(得分:4)
一个简单的解决方案是将类别标签设置为背景颜色(在本例中为白色)。
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setTickLabelPaint("Category 2", Color.white);
domainAxis.setTickLabelPaint("Category 4", Color.white);
这将产生这样的图表
答案 1 :(得分:2)
您可以在域名轴上使用setVerticalTickLabels(true)
,如example所示。
附录:糟糕,example引用的是ValueAxis
。对于CategoryAxis
中使用的StackedBarChart
,您可以使用方法setCategoryLabelPositions()
获得更大的灵活性。典型用法在BarChartDemo1
来源中说明,显示为here。