JFreeChart オーバーレイ グラフに問題があります。JFreeChart 1.0.13 を使用しています。私がやろうとしていることは、以前のバージョンの JFreeChart の方が簡単だったように思えますか?
グラフには折れ線グラフと棒グラフが表示されます。Y 軸の折れ線グラフでプロットされるデータ範囲は 0 ~ 100 の範囲で、棒グラフの軸は 0 ~ 5 の範囲です。
個人的には、それぞれのチャートをレイアウトしてペイントすると見栄えがします。次に例を示します。
棒グラフ 折れ線
グラフ
しかし、それらを重ねると、棒グラフが縮小されて信じられないほど役に立たないように見えます...おそらく、2 つのデータセットの縮尺が非常に異なるためです。
例:
私が本当に欲しいのは、2 つのデータセットの系列データを分割し、左側の Y 軸に折れ線グラフの 0 ~ 100 の範囲を表示し、以下の最初の例のように棒グラフをフルサイズで表示することですが、グラフの右側の Y 軸側に表示されるスケール 0 ~ 5。
グラフを作成するには、まず XYSeriesCollection を使用して棒グラフを作成し、データを追加してプロットを作成します...
XYSeriesCollection histogramDataset= new XYSeriesCollection();
XYSeries xy= new XYSeries("Temp");
xy.add(100,0.0);
xy.add(101,0.3769791404875597);
histogramDataset.addSeries(xy);
...
final NumberAxis xAxis = new NumberAxis("Temperature C");
xAxis.setAutoRangeIncludesZero(false);
final ValueAxis yAxis = new NumberAxis("Percent Time above Temperature");
final XYItemRenderer renderer = new XYBarRenderer();
final XYPlot plot = new XYPlot((XYDataset) histogramDataset, xAxis, yAxis, renderer);
次に、同様の方法で折れ線グラフを作成し、2 番目の系列をプロットに追加します...
final XYSeries xy = new XYSeries("First");
final XYDataset xySeriesData = new XYSeriesCollection();
final XYItemRenderer xyLineRenderer = new XYLineAndShapeRenderer();
xyLineRenderer.setSeriesShape(0, new Line2D.Double(0.0, 0.0, 0.0, 0.0));
xyLineRenderer.setSeriesStroke(0, new BasicStroke(4.5f));
xy.add(100,100.0);
xy.add(101,100.0);
xyseriesData.add(xy);
plot.setDataset(1, xySeriesData);
plot.setRenderer(1, xyLineRenderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
私の疑いは、どういうわけか、各グラフが独自のプロットであり、結合される必要があるということです。誰でも助けることができますか?私がここで行っているのは、次のようなものです。
棒グラフを背景画像にしたくないことを除いて。X 軸は同じにする必要があり、Y 軸は右側に配置し、グラフをフルサイズで表示できる適切なスケールにする必要があります。
任意/すべての返信をお待ちしております...