常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          JFreeChart 一些特性

          柱狀圖高級特性

          BarRenderer3D renderer = new BarRenderer3D();
          renderer.setBaseOutlinePaint(Color.BLACK);
          //設置 Wall 的顏色
          renderer.setWallPaint(Color.gray);
          //設置每種水果代表的柱的顏色
          renderer.setSeriesPaint(0, new Color(0, 0, 255));
          renderer.setSeriesPaint(1, new Color(0, 100, 255));
          renderer.setSeriesPaint(2, Color.GREEN);
          //設置每種水果代表的柱的 Outline 顏色
          renderer.setSeriesOutlinePaint(0, Color.BLACK);
          renderer.setSeriesOutlinePaint(1, Color.BLACK);
          renderer.setSeriesOutlinePaint(2, Color.BLACK);
          //設置每個地區所包含的平行柱的之間距離
          renderer.setItemMargin(0.1);
          //顯示每個柱的數值,并修改該數值的字體屬性
          renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
          renderer.setItemLabelFont(new Font("黑體",Font.PLAIN,12));
          renderer.setItemLabelsVisible(true);

           

          完整范例

            前面都是一些代碼片段,現在把這些片段組合成一個完整范例。

          <%@ page contentType="text/html;charset=GBK"%>
          <%@ page import="java.awt.Color,
                          java.awt.Font,
                          org.jfree.chart.ChartFactory,
                          org.jfree.chart.JFreeChart,
                          org.jfree.chart.plot.PlotOrientation,
                          org.jfree.chart.servlet.ServletUtilities,
                          org.jfree.data.CategoryDataset,
                          org.jfree.data.DatasetUtilities,
                          org.jfree.chart.plot.CategoryPlot,
                          org.jfree.chart.axis.CategoryAxis,
                          org.jfree.chart.axis.Axis,
                          org.jfree.chart.renderer.BarRenderer3D,
                          org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
                          org.jfree.chart.axis.AxisLocation"%>
          <%
          double[][] data = new double[][] {{672, 766, 223, 540, 126},{325, 521, 210, 340, 106},{332, 256, 523, 240, 526}};
          String[] rowKeys = {"蘋果","梨子","葡萄"};
          String[] columnKeys = {"北京","上海","廣州","成都","深圳"};
          CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

          JFreeChart chart = ChartFactory.createBarChart3D("水果銷量圖統計",
                            null,
                            null,
                            dataset,
                            PlotOrientation.VERTICAL,
                            true,false,false);
          chart.setBackgroundPaint(Color.WHITE);
          CategoryPlot plot = chart.getCategoryPlot();

          CategoryAxis domainAxis = plot.getDomainAxis();
          domainAxis.setVerticalCategoryLabels(false);
          plot.setDomainAxis(domainAxis);

          Axis 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.gray);
          //設置每種水果代表的柱的顏色
          renderer.setSeriesPaint(0, new Color(0, 0, 255));
          renderer.setSeriesPaint(1, new Color(0, 100, 255));
          renderer.setSeriesPaint(2, Color.GREEN);
          //設置每個地區所包含的平行柱的之間距離
          renderer.setItemMargin(0.1);
          //顯示每個柱的數值,并修改該數值的字體屬性
          renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
          renderer.setItemLabelsVisible(true);
          plot.setRenderer(renderer);

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

          String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
          String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
          %s>
          <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">

          posted on 2006-12-16 22:57 常言笑 閱讀(1218) 評論(0)  編輯  收藏 所屬分類: JAVA/J2EE

          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华亭县| 仪陇县| 靖西县| 丰台区| 光泽县| 德惠市| 怀柔区| 阳东县| 长治县| 元阳县| 永济市| 资源县| 青浦区| 揭阳市| 靖远县| 韶山市| 澎湖县| 乌拉特后旗| 静海县| 望谟县| 克什克腾旗| 宜黄县| 大埔县| 义马市| 万安县| 武义县| 鄂托克旗| 普兰店市| 乐都县| 惠来县| 靖宇县| 海丰县| 阿合奇县| 石屏县| 通州市| 米脂县| 太湖县| 乌鲁木齐市| 塔河县| 平江县| 无极县|