2016-07-18 14 views
1

時間/日付が私のドメインで、整数が私の範囲であるxyグラフをプロットしたいと思います。私は私のグラフを得ることができた....私はそれをしたい....ドメイン/範囲最小/最大値は、それがExcelのセルから読み取った最低値と最高値ですが、それはグラフ上の何かをプロットしていませんでしたが、 ...続行する方法がわからないJFreeChartSeries Series Exception ... "期間の観測を追加しようとしています..."

TimeSeries timeSeries = new TimeSeries("time"); 
    TimeSeriesCollection timeDataSet = new TimeSeriesCollection(timeSeries); 
    while (rowIterator.hasNext()) { 
      Date date; 


      Number y_data = 0; 

      row = (XSSFRow) rowIterator.next(); 
      XSSFCell x_col = row.getCell(0); 
      date = x_col.getDateCellValue(); 

      Time t = new Time(date.getTime()); 

      XSSFCell y_col = row.getCell(1); 
      y_data = y_col.getNumericCellValue(); 
      ///////PROBLEM BELOW 

      timeSeries.add(new Day(t), y_data); //timeSeries.addOrUpdate(new Day(t), y_data) 

     } 
    timeDataSet.addSeries(timeSeries); 

私は2つの選択肢がありますが、それらのどちらも助けて...私はtimeSeries.add()を使用している場合、私は、彼らは完全に異なる時間であっても、上記のエラーが発生します。..彼らは同じ日、より具体的には、いくつかの読み込みで同じ分であっても、秒とミリ秒が異なります。私がtimeSeries.addOrUpdate()を使用すると、すべての読み取りを完全に上書きするように見えます。TimeSeriesの変数arraylistにはジャンクがあります。これは、すべての値[org.jfree.data.time.TimeSeriesDataItem @ 40c77f1e、null、null、...]もう少しヌル.....私は別のより簡単な例を実行しているので、xyペアを格納する必要があることを知っています。なTimeSeriesを使用して.....私もそうちょうどそれが

timeSeries.addOrUpdate(new Day(date), y_date); 

ことがあるが、同じ問題の時間を利用していないしようとした......それが正常であるか提案

答えて

2

していただきありがとうございます。時間を意識することなく1日のTimePeriodであるDay JfreeChartクラスを使用します。

/** 
* Represents a single day in the range 1-Jan-1900 to 31-Dec-9999. This class 
* is immutable, which is a requirement for all {@link RegularTimePeriod} 
* subclasses. 
*/ 
public class Day extends RegularTimePeriod implements Serializable { 

あなたはもはや問題があってはならない、などFixedMillisecondやミリ秒など、より細かい時間期間で試してみてください。以下のような:

あなたの情報については
timeSeries.add(new FixedMillisecond (date.getTime()), y_data); 

、時系列では、期間は、次のいずれかになります

Year 
Quarter 
Month 
Week 
Day 
Hour 
Minute 
Second 
Millisecond 
FixedMillisecond 
+0

だから、これはtimeSeries.add(新しいセカンド(日)、y_data)を動作します。 ....彼らは異なる秒だから私は推測しているが、2つの読み取りが同じ秒を持っていた場合、私は同じ問題を抱えていただろう.....右か? – ponderingdev

+1

@ curiousmind1995 正確には、値(y)を表す期間(x)が1秒未満の場合、1秒未満の期間を選択する必要があります。それ以外の場合は、グラフ内でそれらを区別することはできません。 – davidxxx

関連する問題