0

早些时候,我曾经使用ChartFactory createTimeseriescreatePieChart静态方法创建默认图表。跟进这个问题,我编写了以下代码,不再使用这些静态方法。ChartFactory但是在编写以下代码来创建组合绘图图表后,当没有可用数据时,我无法达到类似的结果(即类似于由 创建的图表)。

此图像显示了由以下人员创建的显示良好的空时间序列图表ChartFactory在此处输入图像描述

此图像是一个显示不佳的空组合绘图图(空数据没有消息并且域轴的第一个值被截断!): 在此处输入图像描述

包含数据的组合图表的重叠和截断标签: 在此处输入图像描述

这是组合的绘图图表代码:

protected CombinedDomainXYPlot createDataset() {
    CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(new DateAxis("Execution Date"));
    TimeSeries tSeries = null;
    XYPlot xyPlot = null;
    XYLineAndShapeRenderer localXYLineAndShapeRenderer = null;
    NumberAxis numberAxis = null;
    for (ChartMetric metric : values.getChartMetrics()) {
        tSeries = new TimeSeries(metric.getFinalDisplayName());
        numberAxis = new NumberAxis(metric.getFinalDisplayName());
        numberAxis.setAutoRangeIncludesZero(false);
        for (Object[] row : values.getChartMetricValue(metric)) {
            Second sec = new Second((Date) row[0]);
            tSeries.add(sec, (Double) row[1]);
        }
        localXYLineAndShapeRenderer = new XYLineAndShapeRenderer(true, false);
        xyPlot = new XYPlot(new TimeSeriesCollection(tSeries), null, numberAxis, localXYLineAndShapeRenderer);
        xyPlot.setNoDataMessage("xy no data message");
        combinedPlot.add(xyPlot);
    }
    combinedPlot.setGap(40.0D);
    return combinedPlot;
}

protected JFreeChart createChart(CombinedDomainXYPlot combinedXYPlot) {
    super.localJFreeChart = new JFreeChart(chartDetails.getTitle(), JFreeChart.DEFAULT_TITLE_FONT, combinedXYPlot, true);
    ChartFactory.getChartTheme().apply(localJFreeChart);
    return chart;
}

到夏天:

. 我需要以良好显示的方式显示一个空的组合域图表,例如显示的单图时间序列图表(即第一张图像)。成功加载组合图表的数据时,我需要范围轴标签不要重叠。不幸的是,范围轴的标签有时可能很长。因此,如果我只能根据子图高度包装标签,我想会这样做。

感谢您的时间。

4

1 回答 1

0
  1. 您可以设置一个显示良好的占位符数据集,该数据集最初是不可见的,然后在真实数据可用时替换它。

  2. 如果rangeAxis.setVerticalTickLabels(false)没有帮助,那么我不明白这个问题。

于 2013-03-11T13:45:06.583 回答