1

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

任何输入表示赞赏!

4

2 回答 2

3

对于在 aCategoryAxis中用于域轴的 a StackedBarChart,您可以使用该方法具有相当大的灵活性setCategoryLabelPositions()BarChartDemo1源代码中说明了典型用法,此处显示。

CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
    CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
于 2012-08-29T18:45:14.697 回答
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

于 2012-08-29T13:45:43.697 回答