2012-11-16 4 views
5
  1. jfreechartから1日か2日をどのように除外しますか?私は土曜日と土曜日なしの日付を入力していますが、軸にはすべての日付が入ります。
  2. 私はすべて画面に項目を追加しました。どのように表示< = 100項目の画面上にスクロールする場合は、右の項目を追加します。

更新日: 私は、JfreeChartライブラリを使用してCandleChartを作成します。 12〜14日の間にグラフを中断しないでください。Jfreechart:チャートから週末日をどのように除外しますか?

enter image description here

これは文字列です: 1つまたは少数の日は、多分オフ時間です。

12.10.2012 19:00 1.2951 1.296 1.2947 1.2956 
12.10.2012 20:00 1.2956 1.296 1.295 1.2954 
**12.10.2012 21:00 1.2955 1.2959 1.2948 1.2949** 
**14.10.2012 22:00 1.2952 1.296 1.2948 1.2953** 
14.10.2012 23:00 1.2955 1.2955 1.2942 1.2947 

これはコードです:

static TimeSeries t1 = new TimeSeries(""); 
    RegularTimePeriod day = new Day(); 
    RegularTimePeriod hour = new Hour(); 
private static OHLCDataset createPriceDataset(String FILENAME_SD) 
     { 
      OHLCSeries s1 = new OHLCSeries(FILENAME_SD); 

       if (!Environment.getExternalStorageState().equals(
        Environment.MEDIA_MOUNTED)) { 

       } 
       File sdPath = Environment.getExternalStorageDirectory(); 
       sdPath = new File(sdPath.getAbsolutePath() + "/" + DIR_SD); 
       File sdFile = new File(sdPath, FILENAME_SD); 
      try { 
       BufferedReader in = new BufferedReader(new FileReader(sdFile)); 
       DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm"); 
       String inputLine; 

       in.readLine(); 
       while ((inputLine = in.readLine()) != null) { 
        String[] data = inputLine.split("\\s+");      
        Date date = df.parse(data[0] + " " + data[1]);     
        double open  = Double.parseDouble(data[2]); 
        double high  = Double.parseDouble(data[3] ); 
        double low  = Double.parseDouble(data[4] ); 
        double close = Double.parseDouble(data[5] ); 
        // double volume = Double.parseDouble(st.nextToken()); 
        //double adjClose = Double.parseDouble(st.nextToken()); 
        s1.add(new Hour(date), open, high, low, close); 
        t1.add(new Hour(date), open);  
       }  
       in.close();    
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 



      OHLCSeriesCollection dataset = new OHLCSeriesCollection(); 
      dataset.addSeries(s1); 
      return dataset; 
     } 

また、図ズームは、ファイル内のどのマッハ文字列に依存します。絵を描くろうそくはどのようにスクリーン上に100個以下ですか?

これは、多くの文字列を含むファイルからのチャートです:

enter image description here

これは、いくつかの文字列を含むファイルからのチャートです: enter image description here

+0

あなたが例や、さらにINFOMATIONを追加することができ、そのあなたはそれがどのように見える – GrahamA

+1

提供した情報を使用して助けなければなりませんでした'DefaultHighLowDataset'を使用している場合は、空白を避けるために' CategoryDataset'を使用/実装する必要がありますが、適切な実装があるとは思いません。 – GrahamA

+0

これはかなり良い質問です。 –

答えて

2

それはあなたがこれをしたい、特に燭台なら、私はありませんJFreechartクラスがサポートしているとは信じられません。カテゴリベースのデータを使用している間、動作を模倣するためにボックスとウィスカーを使用することができます。表示されているグラフでは、軸は連続データを表し、カテゴリ軸は離散データを表します。

コード例を次に示します。 http://www.java2s.com/Code/Java/Chart/JFreeChartBoxAndWhiskerDemo.htm

あなたがグラフに表現する独自の離散点を選ぶことができると。

それが燭台以外の目的なら、グラハムは正しかったとDefaultCategoryDatasetは、より有用であろう: http://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/category/DefaultCategoryDataset.html