Jfreechart简单应用

阅读更多
一。JFreeChart配置
    1、解压jfreechart_0.9.21.zip
    2、把jfreechart-0.9.21.jar、jcommon-0.9.6.jar、gnujaxp.jar拷贝到LIB中,然后修改 web.xml文件
         
               DisplayChart
               org.jfree.chart.servlet.DisplayChart
          

          
                DisplayChart
                /servlet/DisplayChart
          

二。简单应用代码:平面饼图和柱状图,(网上找到例子)后来修改,解决了乱码问题。
  <%@ page contentType="text/html;charset=GBK"%>
 <%@ page import="org.jfree.chart.ChartFactory,               org.jfree.chart.JFreeChart,              org.jfree.chart.plot.PlotOrientation,          org.jfree.chart.servlet.ServletUtilities,      org.jfree.data.category.CategoryDataset,
 org.jfree.data.general.DatasetUtilities,
                  org.jfree.chart.plot.*,
                  org.jfree.chart.labels.*,
 org.jfree.chart.renderer.category.BarRenderer3D,
                  java.awt.*,
                  org.jfree.ui.*,             org.jfree.chart.axis.AxisLocation"%>
 <%
  double[][] data = new double[][] {{1310, 1220, 1110, 1000},
      {720, 700, 680, 640},
      {1130, 1020, 980, 800},
      {440, 400, 360, 300}};
  String[] rowKeys = {"猪肉", "牛肉","鸡肉", "鱼肉"};
  String[] columnKeys = {"广州", "深圳", "东莞", "佛山"};
 CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); 
 
 JFreeChart chart = ChartFactory.createBarChart3D("肉类销量统计图", 
                   "肉类",
                   "销量",
                   dataset,
                   PlotOrientation.VERTICAL,
                   true,
                   true,
                   false);
 
 CategoryPlot plot = chart.getCategoryPlot();
 //设置网格背景颜色
 plot.setBackgroundPaint(Color.white);
 //设置网格竖线颜色
 plot.setDomainGridlinePaint(Color.pink);
 //设置网格横线颜色
 plot.setRangeGridlinePaint(Color.pink);
 //显示每个柱的数值,并修改该数值的字体属性
 
 BarRenderer3D renderer = new BarRenderer3D();
 renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
 renderer.setBaseItemLabelsVisible(true);
 //默认的数字显示在柱子中,通过如下两句可调整数字的显示
 //注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
 renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
 renderer.setItemLabelAnchorOffset(10D);
 //设置每个地区所包含的平行柱的之间距离
 //renderer.setItemMargin(0.3);
 plot.setRenderer(renderer);
 //设置地区、销量的显示位置
 //将下方的“肉类”放到上方
 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
 //将默认放在左边的“销量”放到右方
 plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
 
 String filename = ServletUtilities.saveChartAsPNG(chart, 700, 400, null, session);
 String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
 %>
 
  • jfreechart-1.0.13.rar (7.2 MB)
  • 下载次数: 10

你可能感兴趣的:(jfreechart,Servlet,360,UI,Web)