首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Jfreechart容易应用

2012-11-05 
Jfreechart简单应用一。JFreeChart配置1、解压jfreechart_0.9.21.zip2、把jfreechart-0.9.21.jar、jcommon-0.9

Jfreechart简单应用
一。JFreeChart配置
    1、解压jfreechart_0.9.21.zip
    2、把jfreechart-0.9.21.jar、jcommon-0.9.6.jar、gnujaxp.jar拷贝到LIB中,然后修改 web.xml文件
          <servlet>
               <servlet-name>DisplayChart</servlet-name>
               <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
           </servlet>
           <servlet-mapping>
                <servlet-name>DisplayChart</servlet-name>
                <url-pattern>/servlet/DisplayChart</url-pattern>
           </servlet-mapping>
二。简单应用代码:平面饼图和柱状图,(网上找到例子)后来修改,解决了乱码问题。

  <%@ 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; %> <img src="<%= graphURL %>"width=700 height=400 border=0 usemap="#<%= filename %>">

热点排行