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.io.File;
  5. import java.io.IOException;
  6.  
  7. import org.jfree.chart.ChartFactory;
  8. import org.jfree.chart.ChartFrame;
  9. import org.jfree.chart.ChartUtilities;
  10. import org.jfree.chart.JFreeChart;
  11. import org.jfree.chart.axis.CategoryAxis3D;
  12. import org.jfree.chart.axis.NumberAxis3D;
  13. import org.jfree.chart.axis.NumberTickUnit;
  14. import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
  15. import org.jfree.chart.plot.CategoryPlot;
  16. import org.jfree.chart.plot.PlotOrientation;
  17. import org.jfree.chart.renderer.category.BarRenderer3D;
  18. import org.jfree.data.category.DefaultCategoryDataset;
  19.  
  20. /**
  21. * @describe 使用 JFreeChart 技术画柱状图
  22. * @author zfc
  23. * @date 2017年12月27日 下午4:03:56
  24. */
  25. public class BarChart3D {
  26. public static void main(String[] args) {
  27. /* 1、数据集对象 DefaultCategoryDataset */
  28. DefaultCategoryDataset dataset = new DefaultCategoryDataset();
  29. /* 2、数据集对象 DefaultCategoryDataset 中添加数据 */
  30. dataset.addValue(98, "数学", "张三");
  31. dataset.addValue(87, "语文", "张三");
  32. dataset.addValue(68, "数学", "李四");
  33. dataset.addValue(89, "语文", "李四");
  34. dataset.addValue(56, "数学", "王五");
  35. dataset.addValue(96, "语文", "王五");
  36. /* 3、创建图形对象 JFreeChart:主标题的名称,图标显示的数据集合,是否显示子标题,是否生成提示的标签,是否生成URL链接 */
  37. JFreeChart chart = ChartFactory.createBarChart3D("成绩统计表", "学生姓名", "分数", dataset, PlotOrientation.VERTICAL, true,
  38. true, true);
  39. /* 4、处理乱码 */
  40. // 处理主标题的乱码
  41. chart.getTitle().setFont(new Font("宋体", Font.BOLD, 18));
  42. // 处理子标题乱码
  43. chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));
  44. /* 5、获取图表区域对象 CategoryPlot */
  45. CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot();
  46. // 获取X轴的对象
  47. CategoryAxis3D categoryAxis3D = (CategoryAxis3D) categoryPlot.getDomainAxis();
  48. // 获取Y轴的对象
  49. NumberAxis3D numberAxis3D = (NumberAxis3D) categoryPlot.getRangeAxis();
  50. // 处理X轴上的乱码
  51. categoryAxis3D.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
  52. // 处理X轴外的乱码
  53. categoryAxis3D.setLabelFont(new Font("宋体", Font.BOLD, 15));
  54. // 处理Y轴上的乱码
  55. numberAxis3D.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
  56. // 处理Y轴外的乱码
  57. numberAxis3D.setLabelFont(new Font("宋体", Font.BOLD, 15));
  58. // 处理Y轴上显示的刻度,以10作为1格
  59. numberAxis3D.setAutoTickUnitSelection(false);
  60. NumberTickUnit unit = new NumberTickUnit(10);
  61. numberAxis3D.setTickUnit(unit);
  62. // 获取绘图区域对象
  63. BarRenderer3D barRenderer3D = (BarRenderer3D) categoryPlot.getRenderer();
  64. // 设置柱形图的宽度
  65. barRenderer3D.setMaximumBarWidth(0.07);
  66. // 在图形上显示数字
  67. barRenderer3D.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
  68. barRenderer3D.setBaseItemLabelsVisible(true);
  69. barRenderer3D.setBaseItemLabelFont(new Font("宋体", Font.BOLD, 15));
  70.  
  71. /* 8、生成相应的图片 */
  72. File file = new File("I:/BarChart3D.JPEG");
  73. try {
  74. ChartUtilities.saveChartAsJPEG(file, chart, 800, 600);
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78.  
  79. // 使用ChartFrame对象显示图像
  80. ChartFrame frame = new ChartFrame("zfc", chart);
  81. frame.setVisible(true);
  82. frame.pack();
  83. }
  84. }

3、运行结果

JFreeChart 之柱状图的更多相关文章

  1. 使用jfreechart生成柱状图、折线图、和饼状图

    JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.下面我就详细介绍如 ...

  2. SSH框架通过JFreeChart实现柱状图和获取项目路径

    获取项目路径:String url= ServletActionContext.getRequest().getRealPath("/upload"); 一.直接生成的图片输出到j ...

  3. 如何使用Jfreechart生成柱状图?

    JFreeChart是JAVA平台上的一个开放的图表绘制类库. 首先 (http://www.jfree.org /jfreechart) 总这个网址下载所需要的库,然后解压,放在某个地方. 我们默认 ...

  4. 使用JFreeChart创建柱状图的工具类

    package cn.xfz.oa.util; import java.awt.Font; import java.util.List; import org.jfree.chart.ChartFac ...

  5. 使用JFreeChart实现基于Web的柱状图

    JFreeChart是一组功能强大.灵活易用的 Java绘图 API,使用它可以生成多种通用性的报表,包括柱状图.饼图.曲线图等.它能够用在 Swing和 Web等中制作自定义的图表或报表,并且得到广 ...

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

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

  7. JFreeChart插件使用

    以java project为例,首先需要导入需要的jar包:jcommon-1.0.23.jar, jfreechart-1.0.19.jar. 画饼状图示例: package com.it.jfch ...

  8. jsp小商城

    一个小商城,当然,没淘宝那么厉害,只是那时学完j2ee后,发现java原来也可以做网站,学了数据库,servlet,jsp,当时是很惊喜的,可以直接做个这样的东西.而放到今天,学了更多之后,发现可以用 ...

  9. jfreeChart柱状图各属性详细设置

    一. 下载与环境配置 此最新版本为 1.0.13 解压jfreechart-1.0.13.zip 将lib目录下的jfreechart-1.0.13.jar .jcommon-1.0.16.jar 复 ...

随机推荐

  1. Python之matplotlib库学习

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备, ...

  2. 蓝牙Bluetooth技术手册规范下载【转】

    蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...

  3. 福利爬虫妹子图之获取种子url

    import os import uuid from lxml import html import aiofiles import logging from ruia import Spider, ...

  4. openstack新版本ocata的接口改动

    新增placement API,部分替代了原先的nova api的部分功能接口 可在此页面查看API详情及示例:https://specs.openstack.org/openstack/nova-s ...

  5. css 悬浮框

    <style>    .xfk {        display: block;        position: fixed;        top: 150px;        lef ...

  6. centos系统初始化脚本

    #!/bin/bash #检测是否为root用户 ];then echo "Must be root can do this." exit fi #检测网络 echo " ...

  7. tomcat6和tomcat7管理用户manager配置

    tomcat用户登录文件配置 如果想要对部署在tomcat上的项目进行管理查看,需要在tomcat安装目录conf文件夹下的tomcat-user.xml里添加用户登录权限.具体添加的内容如下: To ...

  8. ThinkPHP 框架2.1,2.2和3.0版本开启lite模式导致URL命令执行漏洞

    在开启了Lite模式后,在ThinkPHP/extend/Mode/Lite/Dispatcher.class.php中第73行: // 解析剩余的URL参数 $res = preg_replace( ...

  9. MyEclipse 2015反编译插件安装

    本文转自 MyEclipse 2015反编译插件安装 分享一下下载插件的地址,百度网盘:链接:http://pan.baidu.com/s/1nturiAH 密码:yk73 其次:我来说下具体操作步骤 ...

  10. 【ES】学习4-结构化搜索

    1. 结构化搜索得到的结果只有是和否,没有相似概念. term可以实现精确值查询 curl -XGET 'localhost:9200/logstash-cowrie/_search?pretty' ...