早些时候,我曾经使用ChartFactory
createTimeseries
和createPieChart
静态方法创建默认图表。跟进这个问题,我编写了以下代码,不再使用这些静态方法。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;
}
到夏天:
. 我需要以良好显示的方式显示一个空的组合域图表,例如显示的单图时间序列图表(即第一张图像)。成功加载组合图表的数据时,我需要范围轴标签不要重叠。不幸的是,范围轴的标签有时可能很长。因此,如果我只能根据子图高度包装标签,我想会这样做。
感谢您的时间。