我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          JFreeChart 統計分析柱狀圖詳解


          在這里要注意,如果柱子上的數字位數過大,而圖的寬度又不夠,數字就不會顯示了。
          要注意調整~


          參考代碼:
          List<UserCount> list = manager.getTotalStatus(region.getId(), 0);
                  
          double[][] data = new double[2][7];
                  String[] rowKeys 
          =
                  
          "能瀪母豬""奶牛" };
                  String[] columnKeys 
          =
                  
          "承保員""錄入員""查勘員""理算員""核賠員""審核員""管理員" };
                  
          // 填充數據源
                  for (int i = 0; i < list.size(); i++)
                  
          {
                      UserCount uc 
          = list.get(i);
                      
          // id為0為統計記錄
                      if (uc.getRegionId() == 0)
                      
          {
                          data[
          0][0= uc.getPigUnderWriter();
                          data[
          0][1= uc.getPigRecorder();
                          data[
          0][2= uc.getPigSurveyor();
                          data[
          0][3= uc.getPigClaimer();
                          data[
          0][4= uc.getPigVerifier();
                          data[
          0][5= uc.getPigAssessor();
                          data[
          0][6= uc.getPigAdmin();

                          data[
          1][0= uc.getOxUnderWriter();
                          data[
          1][1= uc.getOxRecorder();
                          data[
          1][2= uc.getOxSurveyor();
                          data[
          1][3= uc.getOxClaimer();
                          data[
          1][4= uc.getOxVerifier();
                          data[
          1][5= uc.getOxAssessor();
                          data[
          1][6= uc.getOxAdmin();
                          
          break;

                      }

                  }


                  CategoryDataset dataset 
          = DatasetUtilities.createCategoryDataset(
                          rowKeys, columnKeys, data);
                  JFreeChart chart 
          = ChartFactory.createBarChart3D("人員總體狀況圖表""",
                          
          "數量(人)", dataset, PlotOrientation.VERTICAL, truefalsefalse);
                  
          // 背景色
                  chart.setBackgroundPaint(Color.WHITE);
                  
          // 設置標題內容及樣式
                  chart
                          .setTitle(
          new TextTitle("人員總體狀況圖表"new Font("黑體", Font.BOLD,
                                  
          14)));

                  CategoryPlot plot 
          = chart.getCategoryPlot();
                  plot.setBackgroundPaint(Color.LIGHT_GRAY);
                  plot.setRangeGridlinePaint(Color.black);

                  ValueAxis rangeAxis 
          = plot.getRangeAxis();
                  
          // 設置最高的一個 Item 與圖片頂端的距離
                  rangeAxis.setUpperMargin(0.15);
                  
          // 設置最低的一個 Item 與圖片底端的距離
                  rangeAxis.setLowerMargin(0.15);
                  plot.setRangeAxis(rangeAxis);

                  BarRenderer3D renderer 
          = new BarRenderer3D();
                  renderer.setBaseOutlinePaint(Color.BLACK);
                  
          // 設置 Wall 的顏色
                  renderer.setWallPaint(Color.LIGHT_GRAY);
                  
          // 設置每種角色代表的柱的顏色
                  
          // 對于自定義顏色也可以用 Color.decode("#124f21");
                  renderer.setSeriesPaint(0new Color(2551020));
                  renderer.setSeriesPaint(
          1, Color.YELLOW);
                  
          // 設置每種角色代表的柱的 Outline 顏色
                  renderer.setSeriesOutlinePaint(0, Color.BLACK);
                  renderer.setSeriesOutlinePaint(
          1, Color.BLACK);
                  
          // 設置每個地區所包含的平行柱的之間距離
                  renderer.setItemMargin(0.1);
                  
          // 設置是否顯示數字(柱子上)
                  renderer
                          .setBaseItemLabelGenerator(
          new StandardCategoryItemLabelGenerator());
                  
          // 柱子上字體的樣式
                  renderer.setBaseItemLabelFont(new Font("黑體", Font.PLAIN, 9));
                  renderer.setBaseItemLabelsVisible(
          true);
                  plot.setRenderer(renderer);

                  
          // 設置柱的透明度
                  plot.setForegroundAlpha(0.9f);
                  
          // 設置地區、數量的顯示位置
                  plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
                  plot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);

                  Random r 
          = new Random();
                  
          this.imagePath = "/images/chart/userCountBarChart" + r.nextInt()
                          
          + ".png";
                  String path 
          = this.getFullPath() + imagePath;
                  ChartUtilities.saveChartAsPNG(
          new File(path), chart, 700300);


          posted on 2008-12-02 17:09 々上善若水々 閱讀(1797) 評論(0)  編輯  收藏 所屬分類: opensource

          主站蜘蛛池模板: 金坛市| 凤冈县| 汉川市| 新宁县| 民乐县| 霍山县| 包头市| 鞍山市| 台东市| 长汀县| 纳雍县| 循化| 剑河县| 积石山| 子长县| 库车县| 黔西| 扎鲁特旗| 三明市| 嵊州市| 保德县| 镇赉县| 麻阳| 都兰县| 清新县| 蒙城县| 景谷| 叙永县| 磴口县| 大渡口区| 临武县| 化德县| 毕节市| 星座| 邻水| 康乐县| 南昌县| 凭祥市| 右玉县| 富裕县| 德化县|