cewolf学习笔记

cewolf学习笔记

1.导入包
  
下载地址:http://cewolf.sourceforge.net/new/index.html

  (1)导入包 到 WEB-INF/lib下
    cewolf-1.0.jar 
    batik-*.jar 
    jcommon-1.0.0.jar
    jfreechart-1.0.jar
 
  (2)导入标签文件到WEB-INF下
     cewolf.tld



2.配置web.xml文件
  新增:
 <servlet>
    <servlet-name>CewolfServlet</servlet-name>
    <servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
    <!-- sets storage implementation -->
    <init-param>
        <param-name>storage</param-name>
        <param-value>de.laures.cewolf.storage.TransientSessionStorage</param-value>
    </init-param>
     <!-- sets overlib.js location relative to webapp -->
    <init-param>
        <param-name>overliburl</param-name>
        <param-value>/etc/overlib.js</param-value>
    </init-param>
    <!-- turn on or off debugging logging -->
    <init-param>
        <param-name>debug</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>4</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>CewolfServlet</servlet-name>
    <url-pattern>/adChart/*</url-pattern>
  </servlet-mapping>

  3.写类文件
    类必须实现DatasetProducer接口
    例:
    package action;

    import java.io.Serializable;
    import java.util.Date;
    import java.util.Map;
    import org.jfree.data.category.DefaultIntervalCategoryDataset;
    import de.laures.cewolf.DatasetProduceException;
    import de.laures.cewolf.DatasetProducer;

    public class Tu implements DatasetProducer, Serializable{
        String categories[] = {"mon","tues","sun"};
        String seriesNames [] = {"show","click","ctr"};
           
        public String getProducerId() {           
            return "CategoryDataProducer";
        }
   
        public boolean hasExpired(Map arg0, Date arg1) {
       
            return true;
        }
   
        public Object produceDataset(Map arg0) throws DatasetProduceException {

            //以下是测试数据
            Number[][] datasets = new Number[3][3];

           
            datasets[0][0] = new Integer(201);
            datasets[0][1] = new Integer(2);
            datasets[0][2] = new Integer(3);
           
            datasets[1][0] = new Integer(11);
            datasets[1][1] = new Integer(22);
            datasets[1][2] = new Integer(33);
               
            datasets[2][0] = new Integer(44);
            datasets[2][1] = new Integer(55);
            datasets[2][2] = new Integer(66);           
             
             //参数1:横轴 参数2:纵轴 
            DefaultIntervalCategoryDataset ds = new DefaultIntervalCategoryDataset(
                    categories,seriesNames,  datasets,datasets);
            return ds;
        }  
    }

4.写JSP文件
  以下是个柱状图:

    <%@ page language="java" pageEncoding="UTF-8" import="yicha.tool.IpList"%>
    <%@taglib uri='/WEB-INF/cewolf.tld' prefix='cewolf' %>
    <html>
          <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>test</title>
      </head>
    <body>
      <%
        action.Tu tu = new action.Tu();
        pageContext.setAttribute("data1",tu);
      %>

     <cewolf:chart id="pageChart2" title="日期柱状图" type="stackedHorizontalBar"     xaxislabel="时间" yaxislabel="数量">
        <cewolf:data>
        <cewolf:producer id="data1" />
        </cewolf:data>
    </cewolf:chart>
    <cewolf:img chartid="pageChart2" renderer="/adChart" width="500" height="500"/>

    </body>
    </html>



5.网上的一些资料

    图形                      中文                  对应的数据类(例子中的)()在 public Object produceDataset(Map params)中返回
    ——————————————————————————————
    area                      面积图,               TimeSeriesCollection(new TimeSeries("title", Month.class));
    areaxy                    面积XY图              new DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues)
    horizontalbar             水平柱条              new DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    horizontalbar3d           3D水平柱条            DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    line                      折线图                DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
                            DefaultCategoryDataset;

    pie                       饼图                  new DefaultPieDataset();
    scatter                   XY散点图
    stackedhorizontalbar      管状水平柱图          DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    stackedverticalbar,       管状垂直柱图          DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    stackedverticalbar3d      3D管状垂直柱图        DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    timeseries                时间序列图            new TimeSeries("title", Month.class);
    verticalbar               垂直柱条图            DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues); 
    verticalbar3d             3D垂直柱条图          DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
    xy, ??                    XY散点图              XYSeriesCollection(new XYSeries("Example XY Dataset")
    candlestick               股价图                DefaultHighLowDataset;
    highlow                   高低数值图            new DefaultHighLowDataset("Laures, Inc.", dates, high, low, open, close, volume) 
    gantt,                    冈特图                new TaskSeriesCollection()
    wind, ??
    signal                    信号图                SubSeriesDataset(TimeSeriesCollection(new TimeSeries()), int index);
    verticalxybar             垂直柱状数值图        TimeSeriesCollection(new TimeSeries());
    pie3d                     3D饼图                同饼图



6.日期折线图示例(timeseries)
     public class AdDateLineDataset implements DatasetProducer, Serializable {
        private Number[] data;

        private Date[] dateCategories;

        public AdDateLineDataset(Date[] d, Number[] a) {
            data = a;
            dateCategories = d;
        }

        public Object produceDataset(Map params) {

            TimeSeries ts1 = new TimeSeries(title, org.jfree.data.time.Day.class);

            for (int i = 0; i < data.length; i++) {
            ts1.add(new org.jfree.data.time.Day(dateCategories[i]),    data[i]);
            }

            TimeSeriesCollection collect = new TimeSeriesCollection(ts1);

            return collect;
        }

        public String getProducerId() {
            return "TimeDataProducer";
        }

        public boolean hasExpired(Map params, Date since) {
            return true;
        }
        }

7.饼状图示例(pie)
  public class AdPieDataset implements DatasetProducer, Serializable {
        private Object data;
   
        final String[] categories = { "Docomo", "AU", "Softbank"};

        public AdPieDataset(Object obj) {
            data = obj;
        }

        public Object produceDataset(Map params) {
            DefaultPieDataset ds = new DefaultPieDataset();
            int[] iData;
            double[] dData;
            if (data instanceof int[]) {
                iData = (int[]) data;
                for (int i = 0; i < iData.length; i++) {
                    ds.setValue(categories[i], new Integer(iData[i]));
                    System.out.println("pvi:" + i + "=" + iData[i]);
                }
            }else if (data instanceof double[]) {
                dData = (double[]) data;
                for (int i = 0; i < dData.length; i++) {
                    ds.setValue(categories[i], new Double(dData[i]));
                    System.out.println("pvd:" + i + "=" + dData[i]);
                }
            }
            return ds;
        }

        public String getProducerId() {
            return "adunion_PieDataProducer";
        }

        /**
         * 50秒过期
         */
        public boolean hasExpired(Map params, Date since) {
            return (System.currentTimeMillis() - since.getTime()) > 50000;
        }
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值