JFreeChart 折线图

来源:互联网 发布:数据存储单位从小到大 编辑:程序博客网 时间:2024/06/05 19:50

在我前面的博文讲到了JFreeChart报表图形:JFreeChart 3D饼图     JFreeChart 柱形图

1.现在我们来讲讲JFreeChart-折线图:

1.所需要的架包:

 架包下载地址:架包下载 因为是我上传的免费下载。

下载后解压,所需的架包在lib文件夹中
2.编写Servlet控制类:
[java] view plain copy
print?
  1. public static String genLineChart(HttpSession session)throws Exception{  
  2.         // A网站的访问量统计  
  3.         TimeSeries timeSeries=new TimeSeries(“A网站访问量统计”, Month.class);  
  4.         // 添加数据  如果你是从数据库中获取数据,你就写个循环塞值就行了。  
  5.         timeSeries.add(new Month(1,2013), 100);  
  6.         timeSeries.add(new Month(2,2013), 200);  
  7.         timeSeries.add(new Month(3,2013), 300);  
  8.         timeSeries.add(new Month(4,2013), 400);  
  9.         timeSeries.add(new Month(5,2013), 560);  
  10.         timeSeries.add(new Month(6,2013), 600);  
  11.         timeSeries.add(new Month(7,2013), 750);  
  12.         timeSeries.add(new Month(8,2013), 890);  
  13.         timeSeries.add(new Month(9,2013), 120);  
  14.         timeSeries.add(new Month(10,2013), 400);  
  15.         timeSeries.add(new Month(11,2013), 1200);  
  16.         timeSeries.add(new Month(12,2013), 1600);  
  17.           
  18.         // B网站的访问量统计  
  19.         //如果有更多的就继续添加就行了  
  20.         TimeSeries timeSeries2=new TimeSeries(“B网站访问量统计”, Month.class);  
  21.         // 添加数据  
  22.         timeSeries2.add(new Month(1,2013), 50);  
  23.         timeSeries2.add(new Month(2,2013), 100);  
  24.         timeSeries2.add(new Month(3,2013), 150);  
  25.         timeSeries2.add(new Month(4,2013), 200);  
  26.         timeSeries2.add(new Month(5,2013), 220);  
  27.         timeSeries2.add(new Month(6,2013), 300);  
  28.         timeSeries2.add(new Month(7,2013), 340);  
  29.         timeSeries2.add(new Month(8,2013), 400);  
  30.         timeSeries2.add(new Month(9,2013), 450);  
  31.         timeSeries2.add(new Month(10,2013), 500);  
  32.         timeSeries2.add(new Month(11,2013), 70);  
  33.         timeSeries2.add(new Month(12,2013), 800);  
  34.           
  35.         // 定义时间序列的集合  
  36.         TimeSeriesCollection lineDataset=new TimeSeriesCollection();  
  37.         lineDataset.addSeries(timeSeries);  
  38.         lineDataset.addSeries(timeSeries2);  
  39.           
  40.         JFreeChart chart=ChartFactory.createTimeSeriesChart(”访问量统计时间折线图”“月份”“访问量”, lineDataset, truetruetrue);  
  41.           
  42.         //设置主标题  
  43.         chart.setTitle(new TextTitle(“A,B网站访问量统计对比图”new Font(“隶书”, Font.ITALIC, 15)));   
  44.         //设置子标题  
  45.         TextTitle subtitle = new TextTitle(“2016年度”new Font(“黑体”, Font.BOLD, 12));  
  46.         chart.addSubtitle(subtitle);   
  47.         chart.setAntiAlias(true);   
  48.           
  49.         //设置时间轴的范围。  
  50.         XYPlot plot = (XYPlot) chart.getPlot();   
  51.         DateAxis dateaxis = (DateAxis)plot.getDomainAxis();  
  52.         dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat(“M月”));  
  53.         dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1));   
  54.           
  55.         //设置曲线是否显示数据点  
  56.         XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer)plot.getRenderer();  
  57.         xylinerenderer.setBaseShapesVisible(true);   
  58.           
  59.         //设置曲线显示各数据点的值  
  60.         XYItemRenderer xyitem = plot.getRenderer();   
  61.         xyitem.setBaseItemLabelsVisible(true);  
  62.         xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));   
  63.         xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());  
  64.         xyitem.setBaseItemLabelFont(new Font(“Dialog”112));   
  65.         plot.setRenderer(xyitem);  
  66.           
  67.         //最后返回组成的折线图数值  
  68.         String fileName=ServletUtilities.saveChartAsPNG(chart, 700500, session);  
  69.           
  70.         return fileName;  
  71.     }  
public static String genLineChart(HttpSession session)throws Exception{        // A网站的访问量统计        TimeSeries timeSeries=new TimeSeries("A网站访问量统计", Month.class);        // 添加数据  如果你是从数据库中获取数据,你就写个循环塞值就行了。        timeSeries.add(new Month(1,2013), 100);        timeSeries.add(new Month(2,2013), 200);        timeSeries.add(new Month(3,2013), 300);        timeSeries.add(new Month(4,2013), 400);        timeSeries.add(new Month(5,2013), 560);        timeSeries.add(new Month(6,2013), 600);        timeSeries.add(new Month(7,2013), 750);        timeSeries.add(new Month(8,2013), 890);        timeSeries.add(new Month(9,2013), 120);        timeSeries.add(new Month(10,2013), 400);        timeSeries.add(new Month(11,2013), 1200);        timeSeries.add(new Month(12,2013), 1600);        // B网站的访问量统计        //如果有更多的就继续添加就行了        TimeSeries timeSeries2=new TimeSeries("B网站访问量统计", Month.class);        // 添加数据        timeSeries2.add(new Month(1,2013), 50);        timeSeries2.add(new Month(2,2013), 100);        timeSeries2.add(new Month(3,2013), 150);        timeSeries2.add(new Month(4,2013), 200);        timeSeries2.add(new Month(5,2013), 220);        timeSeries2.add(new Month(6,2013), 300);        timeSeries2.add(new Month(7,2013), 340);        timeSeries2.add(new Month(8,2013), 400);        timeSeries2.add(new Month(9,2013), 450);        timeSeries2.add(new Month(10,2013), 500);        timeSeries2.add(new Month(11,2013), 70);        timeSeries2.add(new Month(12,2013), 800);        // 定义时间序列的集合        TimeSeriesCollection lineDataset=new TimeSeriesCollection();        lineDataset.addSeries(timeSeries);        lineDataset.addSeries(timeSeries2);        JFreeChart chart=ChartFactory.createTimeSeriesChart("访问量统计时间折线图", "月份", "访问量", lineDataset, true, true, true);        //设置主标题        chart.setTitle(new TextTitle("A,B网站访问量统计对比图", new Font("隶书", Font.ITALIC, 15)));         //设置子标题        TextTitle subtitle = new TextTitle("2016年度", new Font("黑体", Font.BOLD, 12));        chart.addSubtitle(subtitle);         chart.setAntiAlias(true);         //设置时间轴的范围。        XYPlot plot = (XYPlot) chart.getPlot();         DateAxis dateaxis = (DateAxis)plot.getDomainAxis();        dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat("M月"));        dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1));         //设置曲线是否显示数据点        XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer)plot.getRenderer();        xylinerenderer.setBaseShapesVisible(true);         //设置曲线显示各数据点的值        XYItemRenderer xyitem = plot.getRenderer();         xyitem.setBaseItemLabelsVisible(true);        xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));         xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());        xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 12));         plot.setRenderer(xyitem);        //最后返回组成的折线图数值        String fileName=ServletUtilities.saveChartAsPNG(chart, 700, 500, session);        return fileName;    }
3.编写JSP显示页面:
[java] view plain copy
print?
  1. <%@page import=“com.java1234.chart.line.LineChart2”%>  
  2. <%@ page language=”java” contentType=“text/html; charset=utf-8”  
  3.     pageEncoding=”utf-8”%>  
  4. <!DOCTYPE html PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>  
  5. <html>  
  6. <head>  
  7. <meta http-equiv=”Content-Type” content=“text/html; charset=utf-8”>  
  8. <title>Insert title here</title>  
  9. </head>  
  10. <body>  
  11. <%  
  12.     String fileName=LineChart2.genLineChart(session);  
  13.     System.out.println(fileName);  
  14. %>  
  15. <img src=”DisplayChart?filename=<%=fileName %>” width=“700” height=“500” border=“0”/>  
  16. </body>  
  17. </html>  
<%@page import="com.java1234.chart.line.LineChart2"%><%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><%    String fileName=LineChart2.genLineChart(session);    System.out.println(fileName);%><img src="DisplayChart?filename=<%=fileName %>" width="700" height="500" border="0"/></body></html>
4.配置web.xml核心文件:
[java] view plain copy
print?
  1. <servlet>  
  2.         <servlet-name>DisplayChart</servlet-name>  
  3.         <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>  
  4.     </servlet>  
  5.     <servlet-mapping>  
  6.         <servlet-name>DisplayChart</servlet-name>  
  7.         <url-pattern>/DisplayChart</url-pattern>  
  8.     </servlet-mapping>  
<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>/DisplayChart</url-pattern>    </servlet-mapping>
5.最后完成的显示效果:

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的眉毛后半边很稀少怎么办 剑三95修为满了怎么办 21三体综合症临界高风险怎么办 率土之滨没地了怎么办 老公有外遇怎么办他还舍不得小三 11选5输了6万 怎么办 k宝密码忘了怎么办5次 k宝密码输错5次怎么办 上火了牙疼怎么办怎样快速止疼 身体不吸收营养胖不起来怎么办 突然牙疼怎么办教你立刻止疼 蛀牙疼怎么办教你立刻止疼 做了牙套的牙疼怎么办 牙疼怎么办教你立刻止疼 七个月宝宝便秘拉不出来怎么办 喝酒脸上起了很多小红疙瘩怎么办 我的脸又痒又红怎么办 脸又红又痒又烫怎么办 满脸痘痘怎么办全部都是红的 身上起大片扁疙瘩很痒怎么办 我急用钱借钱又借不到怎么办 小孩蛀牙牙疼怎么办教你立刻止疼 牙齿里面长了个小牙齿怎么办 2岁宝宝又吐又拉怎么办 u盘坏了怎么办没反应了 怀孕了不知道孩子是谁的怎么办 怀孕八个月耻骨疼的厉害怎么办 没感情了这段婚姻该怎么办 1岁半宝宝o型腿怎么办 4s店没按时交车怎么办 几天几夜睡不着觉没有睡意怎么办 辣的吃多了胃疼怎么办 喉咙痛怎么办有最好即简单好得快 减肥过后皮肤留下的肥胖纹怎么办 用了完美玛丽艳脸上长痘痘怎么办 腰疼怎么办8方法解决腰疼 红米3x开不了机怎么办 苹果手机忘记了锁屏密码怎么办 小米5的4g网速慢怎么办 红米4a卡机了怎么办 信而富逾期3个月怎么办