5
  1. jfreechart から 1 日または 2 日を除外するにはどうすればよいですか? 土曜日なしで日付を入力し、土曜日なしでグラフを入力しましたが、軸にはすべての日付があります。
  2. 画面にすべてのアイテムを追加しました。画面上で <= 100 アイテムを表示する方法と、右のアイテムにスクロールするとさらにアイテムが追加される場合。

更新: CandleChart を作成し、JfreeChart ライブラリを使用しました。12 ~ 14 日のチャートは中断しないでください。

ここに画像の説明を入力

これは文字列です: 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 個以下に描画するにはどうすればよいですか?

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

ここに画像の説明を入力

これは、いくつかの文字列を含むファイルからのチャートです。 ここに画像の説明を入力

4

1 に答える 1

2

これをやりたいのが特にローソク足の場合、JFreechartクラスがそれをサポートしているとは思いません。Box And Whiskerを使用すると、カテゴリベースのデータを使用しながら動作を模倣できます。表示したグラフの場合、軸は連続データを表し、カテゴリ軸は離散データを表します。

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

これにより、グラフに表示する独自の離散点を選択できます。

ローソク足以外の場合は、Grahamが正しく、DefaultCategoryDatasetの方が便利です: http ://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/category/DefaultCategoryDataset.html

于 2013-01-18T09:57:03.063 に答える