Java实现jFreeChart--折线图

编写代码前需要添加以下几个包:

1、jfreechart-1.0.10-experimental.jar

2、jfreechart-1.0.10-swt.jar

3、jfreechart-1.0.10.jar

4、jcommon-1.0.13.jar

5、swtgraphics2d.jar

6、gnujaxp.jar

7、iText-2.1.1.jar

8、jcommon-1.0.13.jar

可以百度网盘下载     链接:https://pan.baidu.com/s/14_HioAqn5ya9KKaadaFRtg  密码:kpu3

实例一:

效果图:

代码:

  1. import org.jfree.chart.ChartFactory;
  2. import org.jfree.chart.JFreeChart;
  3. import org.jfree.chart.labels.ItemLabelAnchor;
  4. import org.jfree.chart.labels.ItemLabelPosition;
  5. import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
  6. import org.jfree.chart.plot.CategoryPlot;
  7. import org.jfree.chart.plot.PlotOrientation;
  8. import org.jfree.chart.renderer.category.BarRenderer3D;
  9. import org.jfree.data.category.CategoryDataset;
  10. import org.jfree.data.general.DatasetUtilities;
  11. import org.jfree.ui.TextAnchor;
  12. public class LineChart1 {
  13.  
  14. public static String genLineChart(HttpSession session)throws Exception{
  15. // 访问量统计
  16. TimeSeries timeSeries=new TimeSeries("某网站访问量统计", Month.class);
  17. // 添加数据
  18. timeSeries.add(new Month(1,2013), 100);
  19. timeSeries.add(new Month(2,2013), 200);
  20. timeSeries.add(new Month(3,2013), 300);
  21. timeSeries.add(new Month(4,2013), 400);
  22. timeSeries.add(new Month(5,2013), 560);
  23. timeSeries.add(new Month(6,2013), 600);
  24. timeSeries.add(new Month(7,2013), 750);
  25. timeSeries.add(new Month(8,2013), 890);
  26. timeSeries.add(new Month(9,2013), 120);
  27. timeSeries.add(new Month(10,2013), 400);
  28. timeSeries.add(new Month(11,2013), 1200);
  29. timeSeries.add(new Month(12,2013), 1600);
  30. // 定义时间序列的集合
  31. TimeSeriesCollection lineDataset=new TimeSeriesCollection();
  32. lineDataset.addSeries(timeSeries);
  33. JFreeChart chart=ChartFactory.createTimeSeriesChart("访问量统计时间折线图", "月份", "访问量", lineDataset, true, true, true);
  34. //设置主标题
  35. chart.setTitle(new TextTitle("某网站访问量统计", new Font("隶书", Font.ITALIC, 15)));
  36. //设置子标题
  37. TextTitle subtitle = new TextTitle("2013年度", new Font("黑体", Font.BOLD, 12));
  38. chart.addSubtitle(subtitle);
  39. chart.setAntiAlias(true);
  40. //设置时间轴的范围。
  41. XYPlot plot = (XYPlot) chart.getPlot();
  42. DateAxis dateaxis = (DateAxis)plot.getDomainAxis();
  43. dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat("M月"));
  44. dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1));
  45. //设置曲线是否显示数据点
  46. XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer)plot.getRenderer();
  47. xylinerenderer.setBaseShapesVisible(true);
  48. //设置曲线显示各数据点的值
  49. XYItemRenderer xyitem = plot.getRenderer();
  50. xyitem.setBaseItemLabelsVisible(true);
  51. xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
  52. xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
  53. xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 12));
  54. plot.setRenderer(xyitem);
  55. String fileName=ServletUtilities.saveChartAsPNG(chart, 700, 500, session);
  56. return fileName;
  57. }
  58. }

==============================================================

实例二:

效果图:

代码:

  1. public class LineChart2 {
  2. public static String genLineChart(HttpSession session)throws Exception{
  3. // 访问量统计
  4. TimeSeries timeSeries=new TimeSeries("A网站访问量统计", Month.class);
  5. // 添加数据
  6. timeSeries.add(new Month(1,2013), 100);
  7. timeSeries.add(new Month(2,2013), 200);
  8. timeSeries.add(new Month(3,2013), 300);
  9. timeSeries.add(new Month(4,2013), 400);
  10. timeSeries.add(new Month(5,2013), 560);
  11. timeSeries.add(new Month(6,2013), 600);
  12. timeSeries.add(new Month(7,2013), 750);
  13. timeSeries.add(new Month(8,2013), 890);
  14. timeSeries.add(new Month(9,2013), 120);
  15. timeSeries.add(new Month(10,2013), 400);
  16. timeSeries.add(new Month(11,2013), 1200);
  17. timeSeries.add(new Month(12,2013), 1600);
  18. // 访问量统计
  19. TimeSeries timeSeries2=new TimeSeries("B网站访问量统计", Month.class);
  20. // 添加数据
  21. timeSeries2.add(new Month(1,2013), 50);
  22. timeSeries2.add(new Month(2,2013), 100);
  23. timeSeries2.add(new Month(3,2013), 150);
  24. timeSeries2.add(new Month(4,2013), 200);
  25. timeSeries2.add(new Month(5,2013), 220);
  26. timeSeries2.add(new Month(6,2013), 300);
  27. timeSeries2.add(new Month(7,2013), 340);
  28. timeSeries2.add(new Month(8,2013), 400);
  29. timeSeries2.add(new Month(9,2013), 450);
  30. timeSeries2.add(new Month(10,2013), 500);
  31. timeSeries2.add(new Month(11,2013), 70);
  32. timeSeries2.add(new Month(12,2013), 800);
  33. // 定义时间序列的集合
  34. TimeSeriesCollection lineDataset=new TimeSeriesCollection();
  35. lineDataset.addSeries(timeSeries);
  36. lineDataset.addSeries(timeSeries2);
  37. JFreeChart chart=ChartFactory.createTimeSeriesChart("访问量统计时间折线图", "月份", "访问量", lineDataset, true, true, true);
  38. //设置主标题
  39. chart.setTitle(new TextTitle("A,B网站访问量统计对比图", new Font("隶书", Font.ITALIC, 15)));
  40. //设置子标题
  41. TextTitle subtitle = new TextTitle("2013年度", new Font("黑体", Font.BOLD, 12));
  42. chart.addSubtitle(subtitle);
  43. chart.setAntiAlias(true);
  44. //设置时间轴的范围。
  45. XYPlot plot = (XYPlot) chart.getPlot();
  46. DateAxis dateaxis = (DateAxis)plot.getDomainAxis();
  47. dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat("M月"));
  48. dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1));
  49. //设置曲线是否显示数据点
  50. XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer)plot.getRenderer();
  51. xylinerenderer.setBaseShapesVisible(true);
  52. //设置曲线显示各数据点的值
  53. XYItemRenderer xyitem = plot.getRenderer();
  54. xyitem.setBaseItemLabelsVisible(true);
  55. xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
  56. xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
  57. xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 12));
  58. plot.setRenderer(xyitem);
  59. String fileName=ServletUtilities.saveChartAsPNG(chart, 700, 500, session);
  60. return fileName;
  61. }
  62. }

猜你喜欢

转载自blog.csdn.net/iamnotgril/article/details/82817339