JFreeChart 之折线图

一、JFreeChart 简介

  JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

二、JFreeChart 的使用

  官方网站:http://www.jfree.org/

  下载地址:https://sourceforge.net/projects/jfreechart/files/1.%20JFreeChart/

1、拷贝相关的 Jar (jcommon-1.0.23.jar和jfreechart-1.0.19.jar)到 Java 项目中

2、折线图示例(LineChart.java

  1. package cn.com.zfc.jfreechart;
  2.  
  3. import java.awt.Font;
  4. import java.awt.Rectangle;
  5. import java.io.File;
  6. import java.io.IOException;
  7.  
  8. import org.jfree.chart.ChartFactory;
  9. import org.jfree.chart.ChartFrame;
  10. import org.jfree.chart.ChartUtilities;
  11. import org.jfree.chart.JFreeChart;
  12. import org.jfree.chart.axis.CategoryAxis;
  13. import org.jfree.chart.axis.NumberAxis;
  14. import org.jfree.chart.axis.NumberTickUnit;
  15. import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
  16. import org.jfree.chart.plot.CategoryPlot;
  17. import org.jfree.chart.plot.PlotOrientation;
  18. import org.jfree.chart.renderer.category.LineAndShapeRenderer;
  19. import org.jfree.data.category.DefaultCategoryDataset;
  20.  
  21. /**
  22. * 使用 JFreeChart 技术画折线图
  23. *
  24. * @describe
  25. * @author zfc
  26. * @date 2017年12月28日 下午7:21:51
  27. */
  28. public class LineChart {
  29. public static void main(String[] args) {
  30. DefaultCategoryDataset dataset = new DefaultCategoryDataset();
  31. // 添加数据
  32. dataset.addValue(98, "数学", "张三");
  33. dataset.addValue(68, "数学", "李四");
  34. dataset.addValue(56, "数学", "王五");
  35. JFreeChart chart = ChartFactory.createLineChart("用户统计报表(所属单位)", // 主标题的名称
  36. "所属单位名称", // X轴的标签
  37. "数量", // Y轴的标签
  38. dataset, // 图标显示的数据集合
  39. PlotOrientation.VERTICAL, // 图像的显示形式(水平或者垂直)
  40. true, // 是否显示子标题
  41. true, // 是否生成提示的标签
  42. true); // 是否生成URL链接 // 处理图形上的乱码 // 处理主标题的乱码
  43. chart.getTitle().setFont(new Font("宋体", Font.BOLD, 18));
  44. // 处理子标题乱码
  45. chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));
  46. // 获取图表区域对象
  47. CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot();
  48. // 获取X轴的对象
  49. CategoryAxis categoryAxis = (CategoryAxis) categoryPlot.getDomainAxis();
  50. // 获取Y轴的对象
  51. NumberAxis numberAxis = (NumberAxis) categoryPlot.getRangeAxis();
  52. // 处理X轴上的乱码
  53. categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
  54. // 处理X轴外的乱码
  55. categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 15));
  56. // 处理Y轴上的乱码
  57. numberAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
  58. // 处理Y轴外的乱码
  59. numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 15));
  60. // 处理Y轴上显示的刻度,以10作为1格
  61. numberAxis.setAutoTickUnitSelection(false);
  62. NumberTickUnit unit = new NumberTickUnit(10);
  63. numberAxis.setTickUnit(unit);
  64. // 获取绘图区域对象
  65. LineAndShapeRenderer lineAndShapeRenderer = (LineAndShapeRenderer) categoryPlot.getRenderer();
  66. // 在图形上显示数字
  67. lineAndShapeRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
  68. lineAndShapeRenderer.setBaseItemLabelsVisible(true);
  69. lineAndShapeRenderer.setBaseItemLabelFont(new Font("宋体", Font.BOLD, 15));
  70. // 在图形上添加转折点(使用小矩形显示)
  71. Rectangle shape = new Rectangle(10, 10);
  72. lineAndShapeRenderer.setSeriesShape(0, shape);
  73. lineAndShapeRenderer.setSeriesShapesVisible(0, true);
  74. /* 8、生成相应的图片 */
  75. File file = new File("LineChart.JPEG");
  76. try {
  77. ChartUtilities.saveChartAsJPEG(file, chart, 800, 600);
  78. } catch (IOException e) {
  79. e.printStackTrace();
  80. }
  81. // 使用ChartFrame对象显示图像
  82. ChartFrame frame = new ChartFrame("zfc", chart);
  83. frame.setVisible(true);
  84. frame.pack();
  85. }
  86. }

3、运行结果

JFreeChart 之折线图的更多相关文章

  1. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  2. JFreeChart绘制折线图实例

    JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...

  3. SpringMVC框架下使用jfreechart绘制折线图,柱状图,饼状图

    java代码 @Controller public class CityAction { @Autowired private CityBiz cityBiz; //柱状图 @RequestMappi ...

  4. JAVA Swing使用JFreeChart实现折线图绘制

    效果如下: 实现步骤: 1.导入JAR包 jfreechart官网下载的zip文件中包含这两个jar包 2.代码编写 import org.jfree.chart.ChartFactory; impo ...

  5. JFreeChart画折线图

    请见Github博客: http://wuxichen.github.io/Myblog/htmlcss/2014/09/01/JFreechartLinechart.html

  6. java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)

    最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: 1.       jfreechart-1.0.13.jar 2.    ...

  7. JFreeChart在制作折线图

    JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line; import java.awt.Color; import java.awt.Font; import org ...

  8. JFreeChart 图表生成实例(饼图、柱状图、折线图、时序图)

    import java.awt.BasicStroke; import java.awt.Color; import java.io.FileOutputStream; import java.io. ...

  9. struts2整合JFreechart 饼图、折线图、柱形图

    struts2整合JFreechart 饼图.折线图.柱形图 上效果图: 当然可以将数据导出图片格式存储.具体下的链接里的文件有保存成图片的操作. 因为是strust2整合JFreechart,所以s ...

随机推荐

  1. ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed【转】

    报错内容: TASK [activemq : jvm configuration] ********************************************************** ...

  2. cookie添加删除修改

    //cookie添加 document.cookie="username=John Doe"; //添加过期时间 document.cookie="username1=J ...

  3. centos下安装python3.6.2

    一.下载 官网地址:https://www.python.org/downloads/source/ 我下载的是最新的3.6.2rc版本 # cd /opt/ wget https://www.pyt ...

  4. 如何克服presentation恐惧呢?

  5. Git 操作指南

    http://blog.csdn.net/troy__/article/details/40082657

  6. [整理]Error: [ngRepeat:dupes]的解决方法

    sdfsadf <div class="pageNum middle PT10"> <a href="javascript:void(0);" ...

  7. javascript使用事件委托

    事件委托是javascript中一个很重要的概念,其基本思路就是利用了事件冒泡的机制,给上级(父级)元素触发事件的dom对象上绑定一个处理函数.在当有需要很多dom对象要绑定事件的情况下,可以使用事件 ...

  8. Flex 自定义 Zlert 组件!

    说明: 原生的 Alert.show 参数,要显示的按钮你只能 Alert.OK | Alert.Cancel 这样; 自定义 Zlert 参数跟原生的 差不多,按钮写法是这样写的: {"b ...

  9. 第13月第16天 ios keywindow

    1. 在弹出层弹出后keywindow已改变 http://www.jianshu.com/p/4695d7efa20b

  10. 底板芯片组与内存映射(Motherboard Chipsets and the Memory Map) 【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-4194650.html 底板芯片组与内存映射 我打算写一些关于计算机内部构造(computer intern ...