JFreeChart 折线图
来源:互联网 发布:数据存储单位从小到大 编辑:程序博客网 时间:2024/06/05 19:50
在我前面的博文讲到了JFreeChart报表图形:JFreeChart 3D饼图 JFreeChart 柱形图
1.现在我们来讲讲JFreeChart-折线图:
1.所需要的架包:架包下载地址:架包下载 因为是我上传的免费下载。下载后解压,所需的架包在lib文件夹中2.编写Servlet控制类:
- 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;
- }
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显示页面:
- <%@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>
<%@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核心文件:
- <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>
<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
- jfreechart之折线图
- JFreeChart生成折线图
- JFreeChart学习折线图
- JFreeChart---折线图
- JfreeChart折线图
- jfreechart柱状图+折线图
- JFreeChart折线图
- jFreeChart折线图
- JFreeChart实现折线图
- jfreechart 折线图
- JFreeChart 折线图
- JFreeChart 折线图
- JFreeChart折线图,饼图,柱状图
- 利用JFreeChart生成折线图
- JFreeChart 折线图_新手
- jfreechart折线图 开发实例
- JFreeChart最佳实践:折线图
- jfreeChart 例子 时间折线图
- android外部存储
- Disruptor 实例
- 设计模式之代理模式
- 复习makefile
- [LeetCode]26 Remove Duplicates from Sorted Array
- JFreeChart 折线图
- MxNet系列——community——contribute
- Android应用瘦身
- 如何远程登陆Linux图形界面
- KeyPoint of 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》
- 图片保存
- linux之安装软件出现Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)解决总结
- P1226 取余运算||快速幂
- MxNet系列——community——index