乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JFreeChart中柱狀圖的詳細設置

       WindySky 2009-01-14
      26

      JFreeChart中柱狀圖的詳細設置

      柱狀圖: bar charts (regular and stacked, with an optional 3D effect),用到的主要類如下:

       org.jfree.chart.JFreeChart:圖表對象,任何類型的圖表的最終表現(xiàn)形式都是在該對象進行一些屬性的定制。JFreeChart引擎本身提供了一個工廠類用于創(chuàng)建不同類型的圖表對象

       org.jfree.data.category.CategoryDataset:數(shù)據(jù)集對象,用于提供顯示圖表所用的數(shù)據(jù)。根據(jù)不同類型的圖表對應著很多類型的數(shù)據(jù)集對象類

       org.jfree.chart.plot.CategoryPlot:圖表區(qū)域?qū)ο?,基本上這個對象決定著什么樣式的圖表,創(chuàng)建該對象的時候需要Axis、Renderer以及數(shù)據(jù)集對象的支持

       org.jfree.chart.axis.CategoryAxis:用于處理圖表的兩個軸:縱軸和橫軸

       org.jfree.chart.render.CategoryRender:負責如何顯示一個圖表對象

       org.jfree.chart.urls.CategoryURLGenerator:用于生成Web圖表中每個項目的鼠標點擊鏈接

       CategoryToolTipGenerator:用于生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類

       org.jfree.chart.axis.ValueAxis:用于處理圖表中的柱

       

      Java代碼 復制代碼
      1. /**  
      2.  
      3. * 類庫  
      4.  
      5. * 1、jfreechart-1.0.5.jar、jcommon-1.0.9.jar、gnujaxp.jar  
      6. * 2、jbcl.jar、dx.jar、beandt.jar 由JBuilder2006的lib下提供  
      7.  
      8. */  
      9.   
      10. package org.jfree.demo;   
      11.   
      12. import java.io.*;   
      13.   
      14. import org.jfree.data.*;   
      15.   
      16. import org.jfree.chart.*;   
      17.   
      18. import org.jfree.chart.plot.*;   
      19.   
      20. import org.jfree.data.category.*;   
      21.   
      22. import java.awt.Color;   
      23.   
      24. import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;   
      25.   
      26. import java.awt.Font;   
      27.   
      28. import org.jfree.chart.axis.AxisLocation;   
      29.   
      30. import java.awt.event.WindowAdapter;   
      31.   
      32. import java.awt.event.WindowEvent;   
      33.   
      34. import java.awt.Toolkit;   
      35.   
      36. import java.awt.Dimension;   
      37.   
      38. /**  
      39.  
      40. * <p>Title: Java開發(fā)手冊</p>  
      41.  
      42. *  
      43.  
      44. * <p>Description: 適合中高級使用者</p>  
      45.  
      46. *  
      47.  
      48. * <p>Copyright: Copyright (c) 2007</p>  
      49.  
      50. *  
      51.  
      52. * <p>Company: lingbrother</p>  
      53.  
      54. *  
      55.  
      56. * @author lingbrother  
      57.  
      58. * @version 1.0  
      59.  
      60. */  
      61.   
      62. public class BarChartDemo {   
      63.   
      64.   public BarChartDemo() {   
      65.   
      66.     super();   
      67.   
      68.   }   
      69.   
      70.   
      71.   
      72.   public static void main(String[] args) throws IOException{   
      73.   
      74.           CategoryDataset dataset = getDataSet();   
      75.   
      76.           JFreeChart chart = ChartFactory.createBarChart3D(   
      77.   
      78.                                                   "招生信息總覽"// 圖表標題   
      79.   
      80.                                                   "應報與實報對照"// 目錄軸的顯示標簽   
      81.   
      82.                                                   "人數(shù)"// 數(shù)值軸的顯示標簽   
      83.   
      84.                                                   dataset, // 數(shù)據(jù)集   
      85.   
      86.                                                   PlotOrientation.VERTICAL, // 圖表方向:水平、垂直   
      87.   
      88.                                                   true,  // 是否顯示圖例(對于簡單的柱狀圖必須是false)   
      89.   
      90.                                                   true,  // 是否生成工具   
      91.   
      92.                                                   true  // 是否生成URL鏈接   
      93.   
      94.                                                   );   
      95.   
      96.           CategoryPlot plot = chart.getCategoryPlot();//獲得圖表區(qū)域?qū)ο?  
      97.   
      98.           //設置圖表的縱軸和橫軸org.jfree.chart.axis.CategoryAxis   
      99.   
      100.           org.jfree.chart.axis.CategoryAxis domainAxis = plot.getDomainAxis();   
      101.   
      102.           domainAxis.setLowerMargin(0.1);//設置距離圖片左端距離此時為10%   
      103.   
      104.           domainAxis.setUpperMargin(0.1);//設置距離圖片右端距離此時為百分之10   
      105.   
      106.           domainAxis.setCategoryLabelPositionOffset(10);//圖表橫軸與標簽的距離(10像素)   
      107.   
      108.           domainAxis.setCategoryMargin(0.2);//橫軸標簽之間的距離20%   
      109.   
      110.           //domainAxis.setMaximumCategoryLabelLines(1);   
      111.   
      112.           //domainAxis.setMaximumCategoryLabelWidthRatio(0);   
      113.   
      114.   
      115.   
      116.           //設定柱子的屬性   
      117.   
      118.           org.jfree.chart.axis.ValueAxis rangeAxis = plot.getRangeAxis();   
      119.   
      120.           rangeAxis.setUpperMargin(0.1);//設置最高的一個柱與圖片頂端的距離(最高柱的10%)   
      121.   
      122.   
      123.   
      124.           //設置圖表的顏色   
      125.   
      126.           org.jfree.chart.renderer.category.BarRenderer3D renderer;   
      127.   
      128.           renderer = new org.jfree.chart.renderer.category.BarRenderer3D();   
      129.   
      130.           renderer.setBaseOutlinePaint(Color.red);   
      131.   
      132.           renderer.setSeriesPaint(0new Color(0255255));//計劃柱子的顏色為青色   
      133.   
      134.           renderer.setSeriesOutlinePaint(0,Color.BLACK);//邊框為黑色   
      135.   
      136.           renderer.setSeriesPaint(1new Color(02550));//實報柱子的顏色為綠色   
      137.   
      138.           renderer.setSeriesOutlinePaint(1,Color.red);//邊框為紅色   
      139.   
      140.           renderer.setItemMargin(0.1);//組內(nèi)柱子間隔為組寬的10%   
      141.   
      142.           //顯示每個柱的數(shù)值,并修改該數(shù)值的字體屬性   
      143.   
      144.           renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());   
      145.   
      146.           renderer.setItemLabelFont(new Font("黑體",Font.BOLD,12));//12號黑體加粗   
      147.   
      148.           renderer.setItemLabelPaint(Color.black);//字體為黑色   
      149.   
      150.           renderer.setItemLabelsVisible(true);   
      151.   
      152.           plot.setRenderer(renderer);//使用我們設計的效果   
      153.   
      154.   
      155.   
      156.           //設置縱橫坐標的顯示位置   
      157.   
      158.           plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);//學校顯示在下端(柱子豎直)或左側(cè)(柱子水平)   
      159.   
      160.           plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); //人數(shù)顯示在下端(柱子水平)或左側(cè)(柱子豎直)   
      161.   
      162.   
      163.   
      164.           try {   
      165.   
      166.             File file = new File("c:/student.png");   
      167.   
      168.             ChartUtilities.saveChartAsPNG(file,chart,400,300);//把報表保存為文件   
      169.   
      170.           }catch (Exception e) {   
      171.   
      172.                     String s = e.getLocalizedMessage();   
      173.   
      174.                     s = e.getMessage();   
      175.   
      176.                     s = e.toString();   
      177.   
      178.           }   
      179.   
      180.       //將生成的報表放到預覽窗口中   
      181.   
      182.       final ChartFrame preview = new ChartFrame("招生信息",chart);   
      183.   
      184.        preview.addWindowListener(new WindowAdapter() {   
      185.   
      186.          public void windowClosing(final WindowEvent event) {   
      187.   
      188.            preview.dispose();   
      189.   
      190.          }   
      191.   
      192.        });   
      193.   
      194.        preview.pack();   
      195.   
      196.        //調(diào)整預覽窗口的大小和位置,適合屏幕,并且居中   
      197.   
      198.        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();   
      199.   
      200.        preview.setSize(screenSize.width,screenSize.height-50);//適合屏幕,50表示把工具欄要考慮在內(nèi)   
      201.   
      202.        Dimension frameSize = preview.getSize();   
      203.   
      204.        if (frameSize.height > screenSize.height) {   
      205.   
      206.          frameSize.height = screenSize.height;   
      207.   
      208.        }   
      209.   
      210.        if (frameSize.width > screenSize.width) {   
      211.   
      212.          frameSize.width = screenSize.width;   
      213.   
      214.        }   
      215.   
      216.        preview.setLocation( (screenSize.width - frameSize.width) / 2,   
      217.   
      218.                   (screenSize.height - frameSize.height-50) / 2);   
      219.   
      220.   
      221.   
      222.        //顯示報表預覽窗口   
      223.   
      224.        preview.setVisible(true);   
      225.   
      226.   }   
      227.   
      228.   /**  
      229.  
      230.    * 獲取一個演示用的組合數(shù)據(jù)集對象  
      231.  
      232.    * @return  
      233.  
      234.    */  
      235.   
      236.   private static CategoryDataset getDataSet() {   
      237.   
      238.           DefaultCategoryDataset dataset = new DefaultCategoryDataset();   
      239.   
      240.           dataset.addValue(200"計劃""清華大學");   
      241.   
      242.           dataset.addValue(400"實報""清華大學");   
      243.   
      244.           dataset.addValue(100"計劃""天津大學");   
      245.   
      246.           dataset.addValue(205"實報""天津大學");   
      247.   
      248.           dataset.addValue(200"計劃""鄭州大學");   
      249.   
      250.           dataset.addValue(285"實報""鄭州大學");   
      251.   
      252.           return dataset;   
      253.   
      254.   }   
      255.   
      256. }   

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多