我创建了一个堆叠条形图,其中在y轴上显示计数,在x上显示日期。问题是,当我在x轴上有很多日期时,它会变得非常混乱,无法阅读。我只想显示一些日期,例如每周一次。这可能吗?我正在使用ChartFactory.createStackedBarChart()
创建图表,并且我在DefaultCategoryDataSet
中有数据。
欢迎您提供任何意见!
对于用于StackedBarChart
中域轴的CategoryAxis
,方法setCategoryLabelPositions()
具有相当大的灵活性。BarChartDemo1
源中说明了典型的用法,如下所示。
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
您是否尝试过覆盖标签生成器中的generateLabel方法?类似于:
chart.getCategoryPlot().getRenderer().setBaseItemLabelGenerator(
new CategoryItemLabelGenerator() {
public String generateColumnLabel(CategoryDataset dataset, Integer column) {
if(column % 7 == 0)
super.generateColumnLabel(dataset, column)
else
""
}
}
);
我还没有测试过代码,但它应该每7列只输出一个标签。关于标签生成器的更多信息,请点击此处:http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/labels/CategoryItemLabelGenerator.html