Jfreechart:如何从图表中排除周末天数?

Den*_* S. 5 java android jfreechart

  1. 如何从jfreechart中排除一两天?我没有星期六的输入日期和没有星期六的图表,但在轴上有所有日期.
  2. 我已在屏幕上添加了所有项目.如何在屏幕上查看<= 100项目,如果向右滚动项目添加更多项目.

更新:我制作CandleChart,使用JfreeChart库.12至14天之间的图表不应该被打断.

在此输入图像描述

这是字符串:一天或几天可能是关闭时间.

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
Run Code Online (Sandbox Code Playgroud)

这是代码:

    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;
        }
Run Code Online (Sandbox Code Playgroud)

此外,图表缩放取决于文件中的马赫字符串的方式.如何在屏幕上绘制蜡烛不超过100?

这是包含许多字符串的文件中的图表:

在此输入图像描述

这是包含少量字符串的文件中的图表: 在此输入图像描述

Joh*_*red 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