jfreechart 方差图

package graph;import java.awt.Color;import java.io.File;import java.io.IOException;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.DateAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.axis.NumberTickUnit;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.labels.StandardCategoryToolTipGenerator;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.DatasetRenderingOrder;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.LineAndShapeRenderer;import org.jfree.chart.renderer.category.StatisticalLineAndShapeRenderer;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.statistics.DefaultStatisticalCategoryDataset;

 /** * A demonstration application showing a chart where you can show and hide  * individual series. */

public class Graph  {       

 public static CategoryDataset createSampleDataset() {   

         DefaultStatisticalCategoryDataset dataset                     = new DefaultStatisticalCategoryDataset();       

     String rowkey="Normal range";        

    double Yvalue[]={1.083,1.245,1.375,1.452,1.512,1.526,1.516,1.511,1.509,1.497,1.485,1.475,1.474,1.465,1.468,1.465,1.459,1.465,1.452,1.455};           

double SDValue[]={0.296,0.297,0.319,0.313,0.308,0.301,0.279,0.279,0.259,0.259,0.257,0.251,0.249,0.242,0.239,0.243,0.234,0.239,0.229,0.232};           

dataset.add(Yvalue[0], SDValue[0], rowkey, "1");         

   dataset.add(Yvalue[1], SDValue[1], rowkey, "2");     

       dataset.add(Yvalue[2],SDValue[2],  rowkey , "3");      

      dataset.add(Yvalue[3], SDValue[3], rowkey, "4");        

    dataset.add(Yvalue[4], SDValue[4], rowkey, "5");       

     dataset.add(Yvalue[5],SDValue[5],  rowkey , "6");       

     dataset.add(Yvalue[6], SDValue[6], rowkey, "7");      

      dataset.add(Yvalue[7], SDValue[7], rowkey, "8");     

       dataset.add(Yvalue[8],SDValue[8],  rowkey , "9");   

         dataset.add(Yvalue[9], SDValue[9], rowkey, "10");   

         dataset.add(Yvalue[10], SDValue[10],rowkey, "11");    

        dataset.add(Yvalue[11],SDValue[11],rowkey , "12");   

         dataset.add(Yvalue[12], SDValue[12], rowkey, "13"); 

           dataset.add(Yvalue[13], SDValue[13], rowkey, "14");     

       dataset.add(Yvalue[14],SDValue[14],rowkey , "15");     

       dataset.add(Yvalue[15], SDValue[15], rowkey, "16");       

     dataset.add(Yvalue[16], SDValue[16], rowkey, "17");      

      dataset.add(Yvalue[17],SDValue[17],rowkey , "18");     

       dataset.add(Yvalue[18], SDValue[18], rowkey, "19");        

    dataset.add(Yvalue[19], SDValue[19], rowkey, "20");           

         return dataset;     

   }  

     private static CategoryDataset createDataset2() {       

   DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();     

     String rowkey="Value";         

 double YValue[]={1.05,1.15,1.23,1.39,1.6,1.65,1.55,1.53,1.52,1.45,1.46,1.49,1.46,1.48,1.51,1.42,1.44,1.39,1.4,1.43 };                  

 dataset1.addValue(YValue[0],rowkey, "1");   

        dataset1.addValue(YValue[1],rowkey, "2");    

       dataset1.addValue(YValue[2],rowkey, "3");        

   dataset1.addValue(YValue[3],rowkey, "4");        

   dataset1.addValue(YValue[4],rowkey, "5");      

     dataset1.addValue(YValue[5],rowkey, "6");      

     dataset1.addValue(YValue[6],rowkey, "7");     

      dataset1.addValue(YValue[7],rowkey, "8");    

       dataset1.addValue(YValue[8],rowkey, "9");    

       dataset1.addValue(YValue[9],rowkey, "10");     

      dataset1.addValue(YValue[10],rowkey, "11");   

        dataset1.addValue(YValue[11],rowkey, "12");    

       dataset1.addValue(YValue[12],rowkey, "13");    

       dataset1.addValue(YValue[13],rowkey, "14");  

         dataset1.addValue(YValue[14],rowkey, "15");  

         dataset1.addValue(YValue[15],rowkey, "16");  

         dataset1.addValue(YValue[16],rowkey, "17");    

       dataset1.addValue(YValue[17],rowkey, "18");     

      dataset1.addValue(YValue[18], rowkey,"19");    

       dataset1.addValue(YValue[19],rowkey, "20");  

         return dataset1;     

 }       

/**         * Creates a sample chart.         *          * @param dataset  the dataset.         *          * @return A sample chart.         */      

  private static JFreeChart createChart(CategoryDataset dataset) { 

           JFreeChart chart = ChartFactory.createAreaChart(     

         "Complexity Index for age between 20 and 30 yrs",   // chart title              "Scale factor","SampEn",                  // range axis label                dataset ,               // data                PlotOrientation.VERTICAL,  // orientation                true,                      // include legend                true,                      // tooltips                false               );

            CategoryPlot plot = (CategoryPlot) chart.getPlot();       

     plot.setRenderer(new StatisticalLineAndShapeRenderer());       

     plot.setBackgroundPaint(Color.lightGray);          

            NumberAxis numAxis = (NumberAxis)plot.getRangeAxis();       

     CategoryAxis  dateaxis =   plot.getDomainAxis();      

      //设置y显示方式           

numAxis.setAutoTickUnitSelection(false);//数据轴的数据标签是否自动确定       

     double  rangetick = 0.2D;        

    numAxis.setTickUnit(new NumberTickUnit(rangetick));  //y轴单位间隔为0.2   

                     dateaxis.setCategoryMargin(0);//分类轴边距     

       dateaxis.setLowerMargin(0.0);//分类轴下(左)边距     

       CategoryDataset dataset2 = createDataset2();       

     plot.setDataset(1, dataset2);     

   //    plot.mapDatasetToRangeAxis(1, 2);      

               //  plot.setRangeAxis(1, axis2);       

    LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();  

         renderer2.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());   

      plot.setRenderer(1, renderer2);        

    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);   

       ValueAxis axis=new NumberAxis();       

   axis.setAutoRange(true);        

  axis.setAutoRangeMinimumSize(0.2);        

          return chart;   

     }        

    public static void main(String[] args) { 

 String out_file="E://JfreeChart//JfreeChart//Graph1.png";  

 CategoryDataset dataset = createSampleDataset(); 

JFreeChart chart = createChart(dataset);    

  try {   

 org.jfree.chart.ChartUtilities.saveChartAsPNG(new File(out_file), chart, 800, 450);     

  } catch (IOException e) {  

  // TODO Auto-generated catch block    e.printStackTrace();  

 }   

 }    

   }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值