3

JFreeChart で特殊な要件を持つ時系列グラフを実装しようとしています。グラフを描くことはできますが、グラフの最後の値に垂直の赤い線を実装する方法がわかりません。常に同じ場所にあり、常に最後の値と交差する必要があります。

これがどのように行われるかについて、私は完全にアイデアがありません。静的なグリッドラインとして実装することは可能かもしれないと考えていましたが、指定方法がわかりません。

また、グラフのサイズは静的であるため、サードパーティのライブラリを導入することなく、これを行うためのいくつかのラウンドアバウトな方法が受け入れられます。

私が達成しようとしているもののイメージは、ここにあります。

ありがとう。

4

2 に答える 2

7

さて、マーカーを使って解決しました。これを行うコードは次のとおりです。

JFreeChart chart = ChartFactory.createTimeSeriesChart(...);
XYPlot plot = chart.getXYPlot();
Long timestampToMark = new Date().getTime();
Marker m = new ValueMarker(timestampToMark);
m.setStroke(new BasicStroke(2));
m.setPaint(Color.RED);
plot.addDomainMarker(m);

たぶん、他の誰かがこれが便利だと思うでしょう。

于 2011-03-28T15:18:39.520 に答える
1

最後のドメイン値にカスタムの十字線を設定するだけです:

XYPlot plot = chart.getXYPlot();
plot.setDomainCrosshairVisible(true);
plot.setDomainCrosshairPaint(Color.red);
plot.setDomainCrosshairStroke(new BasicStroke(3f));
plot.setDomainCrosshairValue(dataset.getXValue(0, dataset.getItemCount(0) - 1));
于 2010-12-10T19:43:04.173 に答える