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;
}
夏を迎えるには:
. 表示された単一プロットの時系列チャート (つまり、最初の画像) のように、空の結合ドメイン チャートを適切に表示する必要があります。結合されたチャートのデータを正常にロードする場合、範囲軸ラベルが重ならないようにする必要があります。残念ながら、範囲軸のラベルは非常に長くなる場合があります。したがって、サブプロットの高さに関してのみラベルをラップできれば、それでうまくいくと思います。
お時間をいただきありがとうございます。