软件艺术思考者  
混沌,彷徨,立志,蓄势...
公告
日历
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

随笔分类(86)

随笔档案(85)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
1.折线图

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color"%>
<%@ page import = "org.jfree.chart.ChartFactory,
                  org.jfree.chart.ChartPanel,
                  org.jfree.chart.JFreeChart,
                  org.jfree.chart.DefaultOldLegend,
                  org.jfree.chart.axis.NumberAxis,
  org.jfree.chart.plot.CategoryPlot,
  org.jfree.chart.plot.PlotOrientation,
  org.jfree.chart.renderer.category.LineAndShapeRenderer,
  org.jfree.data.category.CategoryDataset,
  org.jfree.data.category.DefaultCategoryDataset,
  org.jfree.chart.servlet.ServletUtilities
"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.axis.CategoryLabelPositions"%>
<%@ page import="org.jfree.data.general.DatasetUtilities"%>
<jsp:directive.page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"/>

<%

String[] rowKeys= null;//柱数据
String[] columnKeys=null;//刻度数据

rowKeys = new String[]{"219.146.1.196","219.146.10.105","219.146.10.116","219.146.10.73"};
columnKeys = new String[]{"2008年7月上旬","2007-02-04"};

double[][] data = new double[rowKeys.length][columnKeys.length];
data = new double[][]{
  {1022.0,856.0},{676.0,13563.0},{12827.0,10576.0},{0.0,100.0} 
  };
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createLineChart(
           "这是测试标题...",
            "时间",
            "访问量",                 // range axis label
           dataset,                   // data
           PlotOrientation.VERTICAL,  // orientation
           true,                      // include legend
           true,                      // tooltips
           false                      // urls
       );
chart.setBackgroundPaint(Color.WHITE);  //-----------------------------背景色
chart.setBorderVisible(true);  //--------------------------------------设置边框是否可见
chart.setBorderPaint(Color.BLUE);  //-----------------------------------设置边框颜色setBorderVisible()必须为true

CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.CYAN);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
        plot.setDomainAxis(domainAxis);
       // customise the range axis... 设置统计图中只显示整数
       NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
       rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
       rangeAxis.setAutoRangeIncludesZero(true);
       rangeAxis.setUpperMargin(0.20);
       rangeAxis.setLabelAngle(Math.PI / 2.0); 
         
       LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();  
       renderer.setItemLabelsVisible(true);
       renderer.setShapesVisible(true);//series 点(即数据点)可见
       renderer.setSeriesPaint(0, new Color(0, 0, 255));
       renderer.setSeriesPaint(1, new Color(255, 0, 255));
       renderer.setSeriesPaint(2, new Color(0, 255, 255));
       renderer.setSeriesPaint(3, new Color(0,125,0));
       renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    renderer.setItemLabelsVisible(true);
     
String filename = ServletUtilities.saveChartAsPNG(chart, 850, 550, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<br>
<link href="css/default.css" rel="stylesheet" type="text/css">
<center>
<img src="<%= graphURL %>" width=850 height=550 border=0 usemap="#<%= filename %>">

 2.饼状图

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.io.FileOutputStream"%>
<%@ page import="java.io.IOException"%>
<%@ page import="java.io.*"%>
<%@ page import="java.awt.Color"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.event.*"%>
<%@ page import="javax.swing.*"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.data.*"%>
<%@ page import="org.jfree.data.general.*"%>
<%@ page import="org.jfree.data.category.*"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.data.category.CategoryDataset"%>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.ui.ApplicationFrame"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.axis.NumberAxis"%>
<%@ page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.renderer.category.*"%>
<%@ page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.plot.PiePlot"%>
<%@page import ="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
<%@page import ="org.jfree.chart.renderer.category.BarRenderer3D"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.chart.plot.*"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%
  DefaultPieDataset data = new DefaultPieDataset();
  //数据初始化
  data.setValue("高中以下",380);
  data.setValue("高中",1620);
  data.setValue("大专",6100);
  data.setValue("本科",8310);
  data.setValue("硕士",3520);
  data.setValue("博士",1900);
  
  //HttpSession session = request.getSession();
  
  PiePlot plot = new PiePlot(data);//生成一个3D饼图
  //plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//设定图片链接
  JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
  chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色
  chart.setTitle("程序员学历情况调查表-By Alpha");//可选,设置图片标题
  //plot.setToolTipGenerator(new StandardPieURLGenerator());
  StandardEntityCollection sec = new StandardEntityCollection();
  ChartRenderingInfo info = new ChartRenderingInfo(sec);
  PrintWriter w = new PrintWriter(out);//输出MAP信息
  //500是图片长度,300是图片高度
  //String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session);
  String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session);
  ChartUtilities.writeImageMap(w,"map0",info,false);
  
  String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0">

3.柱状图

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<jsp:directive.page import="org.jfree.data.general.DatasetUtilities"/>
<jsp:directive.page import="org.jfree.chart.JFreeChart"/>
<jsp:directive.page import="org.jfree.chart.ChartFactory"/>
<jsp:directive.page import="org.jfree.chart.plot.PlotOrientation"/>
<jsp:directive.page import="java.awt.Color"/>
<jsp:directive.page import="org.jfree.chart.plot.CategoryPlot"/>
<jsp:directive.page import="org.jfree.chart.axis.CategoryAxis"/>
<jsp:directive.page import="org.jfree.chart.axis.CategoryLabelPositions"/>
<jsp:directive.page import="org.jfree.chart.axis.NumberAxis"/>
<jsp:directive.page import="org.jfree.chart.servlet.ServletUtilities"/>
<jsp:directive.page import="org.jfree.data.category.CategoryDataset"/>
<jsp:directive.page import="org.jfree.chart.renderer.category.BarRenderer3D"/>
<jsp:directive.page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"/>
<jsp:directive.page import="org.jfree.chart.axis.AxisLocation"/>
<jsp:directive.page import="java.text.DecimalFormat"/>
<%
String[] rowInfo = new String[]{"one","two"};
String[] colInfo = new String[]{"first","second"};
double[][] dataInfo = new double[2][2];
dataInfo = new double[][]{
  {1022.0,856.0},{676.0,13563.0} 
  };
CategoryDataset data = DatasetUtilities.createCategoryDataset(rowInfo,colInfo,dataInfo);
JFreeChart chart = ChartFactory.createBarChart3D("this is test......",
                  "row",
                  "col",
                  data,
                  PlotOrientation.VERTICAL,
                  true,false,false);
chart.setAntiAlias(true);
chart.setBackgroundPaint(Color.WHITE);
chart.setBorderPaint(Color.BLACK);
chart.setBorderVisible(true);

//图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
CategoryPlot plot = chart.getCategoryPlot();
plot.setDomainGridlinePaint(Color.RED); //横坐标网格线白色
plot.setDomainGridlinesVisible(true); //可见
plot.setBackgroundPaint(Color.CYAN);

//用于处理图表的两个轴:纵轴和横轴
CategoryAxis axis = plot.getDomainAxis();
axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
axis.setAxisLinePaint(Color.RED);
//axis.setLabel("asdfasdfa");
//axis.setUpperMargin(5);
axis.setTickMarksVisible(true);
axis.setAxisLineVisible(true);


NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();
numberaxis.setAutoTickUnitSelection(true);
numberaxis.setAutoRangeIncludesZero(false);

BarRenderer3D renderer = new BarRenderer3D();

renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.GREEN);
//设置每种柱的颜色
//renderer.setSeriesPaint(0, new Color(0, 0, 255));
//renderer.setSeriesPaint(1, new Color(0, 100, 255));
//设置平行柱之间距离
renderer.setItemMargin(0.02);
//显示每个柱的数值,并修改该数值的字体属性
//renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);

//设置柱的透明度
plot.setForegroundAlpha(0.8f);
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

String filename = ServletUtilities.saveChartAsPNG(chart, 850, 550, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
 %>

<center>
<img src="<%= graphURL %>" width=850 height=550 border=0 usemap="#<%= filename %>">

 

posted on 2008-10-21 12:00 智者无疆 阅读(743) 评论(3)  编辑  收藏 所属分类: about java
评论:
  • # re: 内部类的用法  智者无疆 Posted @ 2008-10-21 12:09
    package com.movo.movonet.web.interceptor;

    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;

    import javax.servlet.http.HttpServletRequest;

    import org.apache.log4j.Logger;
    import org.omg.PortableInterceptor.ServerRequestInterceptor;

    import com.movo.movonet.GetAddress;
    import com.movo.movonet.pojo.Compass;
    import com.movo.movonet.pojo.NVisitcount;
    import com.movo.movonet.second.service.NVisitCountService;
    import com.movo.movonet.service.visitCompassService;
    import com.movo.movonet.web.BaseAction;
    import com.opensymphony.webwork.ServletActionContext;
    import com.opensymphony.webwork.dispatcher.SessionMap;
    import com.opensymphony.webwork.interceptor.ScopeInterceptor;
    import com.opensymphony.xwork.ActionContext;
    import com.opensymphony.xwork.ActionInvocation;
    import com.opensymphony.xwork.interceptor.Interceptor;
    import com.opensymphony.xwork.interceptor.PreResultListener;
    import com.opensymphony.xwork.util.OgnlValueStack;

    public class TotalVisitIntercetor extends ScopeInterceptor{
    Logger log = Logger.getLogger(TotalVisitIntercetor.class);
    private visitCompassService visitcompassService;
    private NVisitCountService visitCountService;
    private NVisitcount visitCount;
    HttpServletRequest request;
    Compass compass;
    /**
    * @return visitCount
    */
    public NVisitcount getVisitCount() {
    return visitCount;
    }

    /**
    * @param visitCount Ҫ���õ� visitCount
    */
    public void setVisitCount(NVisitcount visitCount) {
    this.visitCount = visitCount;
    }

    /**
    * @return visitCountService
    */
    public NVisitCountService getVisitCountService() {
    return visitCountService;
    }

    /**
    * @param visitCountService Ҫ���õ� visitCountService
    */
    public void setVisitCountService(NVisitCountService visitCountService) {
    this.visitCountService = visitCountService;
    }

    public void setVisitcompassService(visitCompassService visitcompassService) {
    this.visitcompassService = visitcompassService;
    }

    protected void before(ActionInvocation invocation) throws Exception {
    invocation.addPreResultListener(this);
    }

    protected void after(ActionInvocation invocation, String result) throws Exception {

    }

    public void beforeResult(ActionInvocation arg0, String arg1) {
    request = ServletActionContext.getRequest();
    compass = (Compass)ServletActionContext.getRequest().getSession().getAttribute(BaseAction.SESSION_KEY_COMPASS);
    if(compass != null){
    visitcompassService.saveVisitCompass(compass.getCompassid());
    Integer[] visitNum = visitcompassService.getVisitCompassNum(compass.getCompassid());
    BaseAction.todayVisitNum = visitNum[0].intValue();
    BaseAction.totalVisitNum = visitNum[1].intValue();
    BaseAction.totalArticleNum = visitNum[2].intValue();
    BaseAction.totalArtcommentNum = visitNum[3].intValue();
    BaseAction.totalReviewNum = visitNum[4].intValue();
    log.debug("xxxxxxxxxxxxxxxxxxx���Ժ�������"+visitcompassService);

    class innerThread implements Runnable{
    public void run() {
    HttpServletRequest request = TotalVisitIntercetor.this.request;
    Compass compass = TotalVisitIntercetor.this.compass;
    String visitIp =request.getRemoteAddr();
    String visitAddress ="";
    String sourceWebSite = request.getRemoteHost();
    String visitedHost = request.getLocalName();
    try {
    visitAddress = GetAddress.getAddressByIP(visitIp);
    } catch (Exception e) {
    e.printStackTrace();
    }
    String hql="from NVisitcount v where v.visiterIp=? and v.companyId=? and v.createtime>=?";
    Date today = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(today);
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MINUTE, 0);
    today = cal.getTime();
    List<NVisitcount> li = visitCountService.find(hql,new Object[]{visitIp,compass.getCompassid(),today});
    if(li!=null&&li.size()>0){
    visitCount = li.get(0);
    visitCount.setVisitcountTotal(visitCount.getVisitcountTotal()+1);
    visitCount.setVisiterAddress(visitAddress);
    visitCountService.updateVisitCount(visitCount);
    }else{
    visitCount = new NVisitcount();
    visitCount.setCompanyId(compass.getCompassid());
    visitCount.setCreatetime(new Date());
    visitCount.setVisitcountTotal(1);
    visitCount.setVisiterAddress(visitAddress);
    visitCount.setVisiterIp(visitIp);
    visitCount.setVisitsite(visitedHost);
    visitCount.setSourceWebSite(sourceWebSite);
    visitCountService.saveVisitCount(visitCount);
    }

    }
    }

    //new Thread(new innerThread()).start();


    }
    }


    }
      回复  更多评论   

  • # re: 内部类的用法  智者无疆 Posted @ 2008-10-21 12:10
    package com.movo.movonet;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    public class GetAddress {

    public static Log log = LogFactory.getLog(GetAddress.class);
    public static String getAddressByIP(String ip) throws Exception{
    HttpClient client=new HttpClient();
    GetMethod loginMethod=new GetMethod("http://www.123cha.com/ip/?q="+ip);
    loginMethod.addRequestHeader("Content-Type", "text/html; charset=GBK");
    client.executeMethod(loginMethod);
    byte[] back = loginMethod.getResponseBody();
    String metter = new String(back,"gbk");
    String []addressBy=SystemConfig.getInstance().getConfiguration().getStringArray("sys.ipaddress");
    String begin1="参考数据一",begin2="参考数据二",begin3="本站主数据";
    String address="";
    if(metter.indexOf(begin2)>0){
    address = metter.substring(metter.indexOf(begin2)+19);
    }
    else if(metter.indexOf(begin3)>0){
    address = metter.substring(metter.indexOf(begin3)+19);
    }else {
    address = metter.substring(metter.indexOf(begin1)+19);
    }
    address = address.substring(0, address.indexOf("</li>"));
    String add[] = address.split("&nbsp;");
    if(add.length>=3){
    return add[0].trim()+add[1].trim().replace("&nbsp;", "");
    }else if(add.length==2){
    return add[0].replace("&nbsp;", "");
    }else {

    return address.replace("&nbsp;", "");
    }

    }
    public static void main(String args[]){
    try{
    getAddressByIP("120.7.188.144");

    }catch(Exception e){
    e.printStackTrace();
    }
    }


    }
      回复  更多评论   

  • # re: 几种报表图的画法[未登录]  追梦人 Posted @ 2008-12-12 14:02
    我把你的例子弄过去试。。可是org.jfree.chart.DefaultOldLegend, 报错。。请帮忙。。谢了。
      回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 智者无疆 Powered by: 博客园 模板提供:沪江博客


   观音菩萨赞