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