Java报表之JFreeChart-第4讲

2020-03-27 12:35

Java报表之JFreeChart-第4讲

1.TimeSeries,TimeSeriesCollection引入

[java] view plain copy

1. package com.xp.chart.line; 2.

3. import java.awt.Font; 4. import java.io.IOException; 5.

6. import javax.servlet.http.HttpSession; 7.

8. import org.jfree.chart.ChartFactory; 9. import org.jfree.chart.JFreeChart; 10. import org.jfree.chart.axis.DateAxis; 11. import org.jfree.chart.axis.DateTickUnit; 12. import org.jfree.chart.labels.ItemLabelAnchor; 13. import org.jfree.chart.labels.ItemLabelPosition;

14. import org.jfree.chart.labels.StandardXYItemLabelGenerator; 15. import org.jfree.chart.plot.XYPlot;

16. import org.jfree.chart.renderer.xy.XYItemRenderer;

17. import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; 18. import org.jfree.chart.servlet.ServletUtilities; 19. import org.jfree.chart.title.TextTitle; 20. import org.jfree.data.time.Month; 21. import org.jfree.data.time.TimeSeries;

22. import org.jfree.data.time.TimeSeriesCollection; 23. import org.jfree.ui.TextAnchor; 24. 25. /**

26. * 折线图实例

27. * @author xiongpan001 28. */

29. public class LineChart1 {

30. public static String getLineChart(HttpSession session) throws Exception

{

31. //创建一个时间序列并且设置报表标题为2016年网站访问量统计

32. TimeSeries timeSeries=new TimeSeries(\年武汉气温变化情况统计图

\, Month.class);

33. //往折线图序列添加数据

34. timeSeries.add(new Month(1,2016),23); 35. timeSeries.add(new Month(2,2016),28); 36. timeSeries.add(new Month(3,2016),29); 37. timeSeries.add(new Month(4,2016),30);

38. timeSeries.add(new Month(5,2016),29); 39. timeSeries.add(new Month(6,2016),30); 40. timeSeries.add(new Month(7,2016),33); 41. timeSeries.add(new Month(8,2016),34); 42. timeSeries.add(new Month(9,2016),23); 43. timeSeries.add(new Month(10,2016),12); 44. timeSeries.add(new Month(11,2016),17); 45. timeSeries.add(new Month(12,2016),23); 46.

47. // 定义时间序列的集合

48. TimeSeriesCollection lineDataset= new TimeSeriesCollection(); 49. lineDataset.addSeries(timeSeries); 50.

51. JFreeChart chart = ChartFactory.createTimeSeriesChart(\气温变化趋势折

线图\,

52. \月份\, \气温\, lineDataset, true, true, true); 53.

54. // 设置主标题

55. chart.setTitle(new TextTitle(\气温变化趋势折线图\, 56. new Font(\楷书\, Font.ITALIC, 16))); 57. // 设置子标题

58. TextTitle subtitle = new TextTitle(\年度\, new Font(\微软雅黑

\, Font.BOLD,

59. 12));

60. chart.addSubtitle(subtitle); 61. chart.setAntiAlias(true); 62.

63. // 设置时间轴的范围。

64. XYPlot plot = (XYPlot) chart.getPlot();

65. DateAxis dateaxis = (DateAxis) plot.getDomainAxis();

66. dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat(\月

\));

67. dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH, 1)); 68. // 设置曲线是否显示数据点

69. XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer) plo

t

70. .getRenderer();

71. xylinerenderer.setBaseShapesVisible(true); 72. // 设置曲线显示各数据点的值

73. XYItemRenderer xyitem = plot.getRenderer(); 74. xyitem.setBaseItemLabelsVisible(true);

75. xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition( 76. ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));

77. xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator())

;

78. xyitem.setBaseItemLabelFont(new Font(\, 1, 12)); 79. plot.setRenderer(xyitem);

80. String fileName = ServletUtilities.saveChartAsPNG(chart, 700, 500, 81. session); 82. return fileName; 83. } 84. }

2.创建折线图页面,代码如下

[html] view plain copy

1. <%@page import=\%>

2. <%@ page language=\ contentType=\ 3. pageEncoding=\%>

4.

3.org/TR/html4/loose.dtd\> 5. 6.

7. 8. Insert title here 9. 10. 11. <%

12. String fileName=LineChart1.getLineChart(session); 13. System.out.println(fileName); 14. %>

15.

der=\/> 16. 17.

3.显示折线图如下

2.利用JFreeChart创建多重折线图报表

[java] view plain copy

1. package com.xp.chart.line; 2.

3. import java.awt.Font; 4.

5. import javax.servlet.http.HttpSession; 6.

7. import org.jfree.chart.ChartFactory; 8. import org.jfree.chart.JFreeChart; 9. import org.jfree.chart.axis.DateAxis; 10. import org.jfree.chart.axis.DateTickUnit; 11. import org.jfree.chart.labels.ItemLabelAnchor; 12. import org.jfree.chart.labels.ItemLabelPosition;

13. import org.jfree.chart.labels.StandardXYItemLabelGenerator; 14. import org.jfree.chart.plot.XYPlot;

15. import org.jfree.chart.renderer.xy.XYItemRenderer;

16. import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; 17. import org.jfree.chart.servlet.ServletUtilities; 18. import org.jfree.chart.title.TextTitle; 19. import org.jfree.data.time.Month; 20. import org.jfree.data.time.TimeSeries;

21. import org.jfree.data.time.TimeSeriesCollection; 22. import org.jfree.ui.TextAnchor;

23.

24. public class LineChart2 { 25.

26. public static String genLineChart(HttpSession session)throws Exception{

27.

28. // 访问量统计

29. TimeSeries timeSeries=new TimeSeries(\网站访问量统计

\, Month.class); 30. // 添加数据

31. timeSeries.add(new Month(1,2013), 100); 32. timeSeries.add(new Month(2,2013), 200); 33. timeSeries.add(new Month(3,2013), 300); 34. timeSeries.add(new Month(4,2013), 400); 35. timeSeries.add(new Month(5,2013), 560); 36. timeSeries.add(new Month(6,2013), 600); 37. timeSeries.add(new Month(7,2013), 750); 38. timeSeries.add(new Month(8,2013), 890); 39. timeSeries.add(new Month(9,2013), 120); 40. timeSeries.add(new Month(10,2013), 400); 41. timeSeries.add(new Month(11,2013), 1200); 42. timeSeries.add(new Month(12,2013), 1600); 43.

44. // 访问量统计

45. TimeSeries timeSeries2=new TimeSeries(\网站访问量统计

\, Month.class); 46. // 添加数据

47. timeSeries2.add(new Month(1,2013), 50); 48. timeSeries2.add(new Month(2,2013), 100); 49. timeSeries2.add(new Month(3,2013), 150); 50. timeSeries2.add(new Month(4,2013), 200); 51. timeSeries2.add(new Month(5,2013), 220); 52. timeSeries2.add(new Month(6,2013), 300); 53. timeSeries2.add(new Month(7,2013), 340); 54. timeSeries2.add(new Month(8,2013), 400); 55. timeSeries2.add(new Month(9,2013), 450); 56. timeSeries2.add(new Month(10,2013), 500); 57. timeSeries2.add(new Month(11,2013), 70); 58. timeSeries2.add(new Month(12,2013), 800); 59.

60. // 定义时间序列的集合

61. TimeSeriesCollection lineDataset=new TimeSeriesCollection(); 62. lineDataset.addSeries(timeSeries); 63. lineDataset.addSeries(timeSeries2);


Java报表之JFreeChart-第4讲.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:F匝道现浇箱梁盘扣支架计算书(修改) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: