DomainAxis中的数据太多,这是setTickUnit的另一种方式

时间:2014-04-19 20:34:50

标签: java jfreechart

我正在创建这样的图表:

            DefaultCategoryDataset cumulativeResultData = new DefaultCategoryDataset();
            DefaultCategoryDataset indexResultData = new DefaultCategoryDataset();

然后在for循环中使用cumulativeResultData.addValue将数据添加到每个数据集

            CategoryPlot plot = new CategoryPlot();
            plot.setDomainAxis(new CategoryAxis("Days"));
            plot.setRangeAxis(new NumberAxis("Result"));
            plot.setOrientation(PlotOrientation.VERTICAL);

            CategoryAxis domainAxis = plot.getDomainAxis();
            domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);


            LineAndShapeRenderer renderer2 = new LineAndShapeRenderer(true, false);
            LineAndShapeRenderer renderer = new LineAndShapeRenderer(true,  false);

            plot.setRenderer(renderer);
            plot.setDataset(cumulativeResultData);
            ValueAxis rangeAxis2 = new NumberAxis("Index price");
            rangeAxis2.setRange(minRange - 1, maxRange + 1);
            plot.setRangeAxis(1, rangeAxis2);
            plot.setRenderer(1, renderer2);
            plot.setDataset(1, indexResultData);
            plot.mapDatasetToRangeAxis(1, 1);

            JFreeChart chart = new JFreeChart(plot);

但是我得到的并不是我期望得到的,请看下面的图片。 domainAxis拥有大量数据并且模糊不清。有什么方法可以修复这个吗?只有每个例如20个元素都显示在domainAxis上? http://imgur.com/PkxSZl8

1 个答案:

答案 0 :(得分:0)

当x轴显示分类数据时,您应该只使用CategoryPlot类。看起来您有时间序列数据,为此您可以使用XYPlot类,其中DateAxis用于x轴。您还可以使用TimeSeriesCollection类作为数据集。