1

私は、1秒間に測定された力をグラフ化する非常に単純なチャートを作成しようとしています. 次のグラフを出力しているプレーンジェーンの例があります。

ここに画像の説明を入力

これが私のコードです:

TimeSeries series1 = new TimeSeries("Force", "Domain", "Range");

//generate values
for (int i = 0; i < 1000; i++) {
    series1.add(new TimeSeriesDataItem(new Millisecond(i, 0, 0, 0, 1, 1, 2012), i));
}

TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(series1);

JFreeChart chart = ChartFactory.createXYLineChart("Measured Forces", 
            "Time", "Force in Pounds", dataset, PlotOrientation.VERTICAL, 
        false, false, false);

ChartUtilities.saveChartAsPNG(new File("/home/rfkrocktk/Desktop/chart.png"), chart, 1280, 720);

これらの見苦しい 1,325,404,800,000 の値を、正確なシステム時間ではなく、測定された全体の時間を表す単純な 0 ~ 1,000 の値に変換するにはどうすればよいでしょうか?

要件に一致するコンストラクターを探していましたが、見つからないようです。

4

3 に答える 3

1

ChartFactory.createXYLineChart()NumberAxisドメインと範囲のそれぞれに 1 つずつ、2 つの のインスタンスを作成します。別の方法として、ドメインChartFactory.createTimeSeriesChart()に を使用するを検討してください。DateAxisどちらの場合でもsetXxxFormatOverride()、軸で使用して、任意のフォーマットを取得できます。ここに示す例では、 factory を指定していますDateFormat

于 2012-09-28T00:29:59.217 に答える
0

私の知る限り、TimeSeriesは「相対時間」の概念をサポートしていません。すべてのx値タイプ(ミリ秒など)は、絶対時間を生成するjava.util.Dateに基づいています。

TimeSeriesの代わりにXYSeriesを使用したほうがよいと思います。その場合、x値は整数にすることができます。

于 2012-09-27T21:49:25.850 に答える