最近项目需要做图形分析,就想到了使用JFreeChart,之前也没有使用过,就现学先用吧。本文主要记录一些主要的代码及学习使用过程。

  使用JFreeChart步骤:

  一、下载JFreeChart.jar包(两种方式),jar包:jfreechart-*.*.*.jar和jcommon-*.*.*.jar

1 //1、maven获取
2
3         <dependency>
4             <groupId>org.jfree</groupId>
5             <artifactId>jfreechart</artifactId>
6             <version>1.0.19</version>
7         </dependency>

1 //2、官网下载最新的jar
2 http://sourceforge.net/projects/jfreechart/files/

  二、获取数据集(模拟数据)

1 private static DefaultCategoryDataset getDefaultDataset(){
2         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
3         for(int i=1;i<=12;i++){
4             dataset.addValue(RandomUtils.nextInt(100, 499), "活跃人数", i+"");
5         }
6         return dataset;
7     }

  三、生成图标对象JFreeChart

1 //创建折线图jfreechart对象,可以查看下ChartFactory下的方法,创建其他类型的图形
2 JFreeChart chart = ChartFactory.createLineChart("2015年度活跃人数", "月份", "人数", dataset,PlotOrientation.VERTICAL,true,false,false);

ChartFactory的静态创建各类图形:

  四、配置JFreeChart图形参数(主要是图形样式、字体样式等)

1   CategoryPlot cp = chart.getCategoryPlot();
2    cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置
3    cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格横线线色设置
4    cp.setDomainGridlinePaint(ChartColor.GRAY);//网格竖线
5    LineAndShapeRenderer renderer = (LineAndShapeRenderer) cp.getRenderer();
6    renderer.setBaseItemLabelsVisible(true);
7    renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
8    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
9    renderer.setBaseItemLabelFont(new Font("宋体", 5, 12));

如果只是以上这些操作的话,会出现中文乱码,还需要加上:

 1 private static void processChart(JFreeChart chart) {
 2         CategoryPlot plot = chart.getCategoryPlot();
 3         CategoryAxis domainAxis = plot.getDomainAxis();
 4         ValueAxis rAxis = plot.getRangeAxis();
 5         chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
 6                 RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
 7         TextTitle textTitle = chart.getTitle();
 8         textTitle.setFont(new Font("宋体", Font.PLAIN, 20));
 9         domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
10         domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
11         rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
12         rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
13         chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
14     }

详细的图表样式,参考:http://blog.sina.com.cn/s/blog_6af9cfe80100ygf6.html

输出的结果:

  

  

转载于:https://www.cnblogs.com/quanenmin/p/4942153.html

JFreeChart使用相关推荐

  1. 报表应用系列——图表JFreeChart: 第 4 章 折线图

    双击代码全选 1 2 3 4 5 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100 ...

  2. Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 这个项目适合SSM框架的初学者(涉及大量增删改查,很适合初学者)以及对Shiro安全框架和Poi技术感兴趣的同学. 项目功能: 用户管理功能 ...

  3. jfreechart的使用

    jfreechart 简介(百度百科): JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets ...

  4. Open Flash Chart组件的使用 及 与 jfreechart, FusionCharts 的比较

    http://crabdave.javaeye.com/blog/189653 Open Flash Chart组件的使用 简介 OpenFlashChart是一个开源的报表制作组件,该组件能够自动生 ...

  5. java 柱状图下载_(JFreeChart)Java图表制作

    (JFreeChart)Java图表制作软件时一个灵活的设计,很容易扩展,和目标服务器端和客户端应用程序;,支持多种图表类型. 输出类型也是多样化.包括Swing组件.图像文件(包括PNG和JPEG) ...

  6. 使用自定义色系美化JfreeChart图表

    JFreeChart所使用的色系生成的图表很难看,笔者深有体会.在使用到JfreeChart的一些项目中经常会有客户提出"能不能由我们自己去设置图表中每个分类的颜色"等等诸如此类的 ...

  7. JFreeChart使用说明一--api介绍

    jfreeChart 中文手册 jfreechartUI JFreeChart类: void setAntiAlias(boolean flag)    字体模糊边界 void setBackgrou ...

  8. 利用JFreeChart绘制股票K线图

    因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上 ...

  9. struts2 spring jfreechart 整合

    jfreechart和servlet结合使用很简单,只要把图片生成了就能通过servlet显示到画面上去,jfreechart和struts2的结合使用其实看上去也很简单,网上大部分方法都是用< ...

  10. JFreeChart入门

    JFreeChart主要用来各种各样的图表,这些图表包括:饼图.柱状图(普通柱状图以及堆栈柱状图).线图.区域图.分布图.混合图.甘特图以及一些仪表盘等等 (源代码下载) 示例程序运用的jar包: j ...

最新文章

  1. vue+ivew-admin开发项目,内存占用过大解决办法
  2. 云计算带来企业管理的革命
  3. Kubernetes对象中的PersistentVolume、PersistentVolumeClaim和StorageClass的概念关系
  4. Web 设计中的苹果风
  5. [转] OpenStack Kilo 更新日志
  6. 数据挖掘竞赛-员工离职预测训练赛
  7. Java Date Nuances的痛苦提醒
  8. [react] render函数中return如果没有使用()会有什么问题?
  9. hadoop分布式集群搭建,包含网络配置-hadoop3环境
  10. STM32学习——MPU6050姿态传感器
  11. 去年写的测试GDAL用法的一些函数
  12. Linux静态库、动态库的制作
  13. javascript闭包小结
  14. android 远程控制工具,安卓版远程协助软件
  15. Android防止连点非常简单的操作
  16. dell latitude3400 笔记本QQ语音别人听不到声音
  17. 计算机网络基础简答题
  18. 射频工程师——中兴笔试题
  19. 8分频verilog线_时钟分频系列——分数分频电路的Verilog实现
  20. 自学考试计算机实践课,河南大学自学考试计算机实践课考试须知

热门文章

  1. P1031 均分纸牌(经典贪心)
  2. python 内存溢出能捕获吗_从0基础学习Python (19)[面向对象开发过程中的异常(捕获异常~相关)]...
  3. python程序运行时间计时软件_python中的计时器timeit的使用方法
  4. 【揭秘】12306是如何抗住几亿日活、百万级高并发的?
  5. 【科普】数据中心“容灾”和“备份”的区别
  6. Google 宣布将 Istio 商标转移给 Open Usage Commons | 云原生生态周报 Vol. 57
  7. 怎样增加混凝土粘聚性_如何改善中低强度等级混凝土粘聚性? 这篇文章一定要看...
  8. springmvc整合redis_111 SpringBoot整合Servlet JSP Filter Listener
  9. php数组循环0到32,通过数组php循环
  10. arcengine遍历属性表_记录一次Hive表清理过程