之前我曾经使用ChartFactory
createTimeseries
和createPieChart
静态方法创建默认图表。继续that question后,我编写了以下代码,不再使用这些静态方法。但是在编写以下代码来创建组合绘图图表后,当没有数据可用时,我无法达到类似的结果(即类似于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;
}
夏天来了:
。我需要以良好显示的方式显示一个空的组合域图表,如显示的单个绘图时间序列图表(即第一个图像) 。成功加载组合图表的数据时,我需要范围轴标签不重叠。不幸的是,范围轴的标签有时会非常长。因此,如果我只能相对于子图高度包装标签,我想这样做会。
感谢您的时间。
答案 0 :(得分:0)
您可以设置一个最初不可见的良好显示的占位数据集,然后在真实数据可用时替换它。
如果rangeAxis.setVerticalTickLabels(false)
无效,那么我不明白这个问题。