3

我正在使用 JFreeChart 生成 StackedBarChart。根据输入数据,我可以有很多类别(通常在 20 到 40 之间),导致标签重叠。在以下屏幕截图中,您可以看到类别从 1 到 38 的图表:

类别从 1 到 38 的图表,标签重叠

我想显示一些类别标签作为参考,但不是全部。最好显示第一个和最后一个,以及其间的每五分之一。这可能吗?

我无法更改图表的宽度,并且只有在标签太小以至于您无法再阅读它们时才能使标签变小...最后的手段是隐藏整个类别轴...

感谢您的任何建议!

4

2 回答 2

4

一种简单的解决方案是将类别标签设置为背景颜色(在本例中为白色)。

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setTickLabelPaint("Category 2", Color.white);
    domainAxis.setTickLabelPaint("Category 4", Color.white);

这将产生一个这样的图表

在此处输入图像描述

于 2012-06-07T09:18:12.950 回答
2

您可以setVerticalTickLabels(true)在域轴上使用,如本所示。

附录:糟糕,引用的示例是针对ValueAxis. 对于 a CategoryAxis,如 中所用StackedBarChart,您可以使用该方法更加灵活setCategoryLabelPositions()BarChartDemo1源代码中说明了典型用法,此处显示。

于 2012-06-06T22:09:39.360 回答