JfreeChart:Stacked Bar Chart和CategoryAxis显示日期

时间:2012-08-29 13:20:55

标签: charts jfreechart bar-chart

我创建了一个堆积条形图,其中我在 y 轴上显示计数,并在 x 轴上显示日期。问题是,当我在 x 轴上有很多日期时,它变得非常混乱,无法读取。我想只显示一些日期,例如每周一个日期。那可能吗?我使用ChartFactory.createStackedBarChart()创建图表,并且我的数据位于DefaultCategoryDataSet

感谢任何输入!

2 个答案:

答案 0 :(得分:3)

对于CategoryAxis,用于StackedBarChart中的域轴,您可以使用方法setCategoryLabelPositions()获得相当大的灵活性。典型用法在BarChartDemo1来源中说明,显示为here

CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
    CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));

答案 1 :(得分: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

相关问题