JfreeChart(1)——初探
来源:互联网 发布:淘宝助理怎么弄 编辑:程序博客网 时间:2024/06/13 03:54
JFreeChart的主要功能就是创建各种各样的图表!可以很方便的表现一些数据!使用JFreeChart的整体步骤一般就三个而已,第一步是准备要用来显示的数据,第二步是创建一个JFreeChart对象,JFreeChart对象通过前面的数据(dataset)来生成一个图表,第三步是显示生成的图表;
下面是一个入门示例,生成pieChart;
第一步:取得数据
JFreeChart可以通过任何实现了PieDataset接口的类取得数据来生成一个JFreeChart对象,而DefaultPieDataset则是实现了这个接口的,下面我们就可以利用这个接口来生成数据了!
- DefaultPieDataset defaultPieDataset = new DefaultPieDataset();
- defaultPieDataset.setValue("中文 1", 43.2);
- defaultPieDataset.setValue("Category 2", 27.8);
- defaultPieDataset.setValue("Category 3", 79.5);
第二步:利用前面的数据来生成JFreeChart对象;
JfreeChart里面提供了一个ChartFactory对象,可以方便我们来创建各种各样的chart对象
- JFreeChart jfreeChart = ChartFactory.createPieChart("中文标题",//标题
- defaultPieDataset,//上面生成的数据,即传入要用于显示的数据
- true,//是否显示图例
- true,//是否生成工具提示
- true);//是否生成URL
第三步:显示生成的图表
显示生成的图标可以有很多种方式,在WEB程序中可以直接以流的方式写到客户端,也可以把生成的图表以图片的形式保存在服务器上,然后客户端访问该图片,我这里举的是最简单的那种,即把图表直接显示在一个frame里面,关于这个JFreeChart的一个ChartFrame对象已经封装好了!
- ChartFrame chartframe = new ChartFrame("Test", jfreeChart);//First表示该Frame的标题,jfreechart表示要显示的JFreeChart对象
- chartframe.pack();//自适应窗体
- chartframe.setVisible(true);
至此一个简单显示图表的问题就解决了,
关于这个还有一个就是中文问题,就是在标题或者标签出现中文的时候会出现乱码,这个问题将在下面的完整代码里面进行解决
下面是一个完整的代码
- package com.tiantian.everything.chart;
- import java.awt.Font;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartFrame;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.plot.PiePlot;
- import org.jfree.chart.title.TextTitle;
- import org.jfree.data.general.DefaultPieDataset;
- public class Test {
- @SuppressWarnings("unchecked")
- public static void main(String args[]) {
- DefaultPieDataset defaultPieDataset = new DefaultPieDataset();
- defaultPieDataset.setValue("中文 1", 43.2);
- defaultPieDataset.setValue("中 2", 27.8);
- defaultPieDataset.setValue("Category 3", 79.5);
- JFreeChart jfreeChart = ChartFactory.createPieChart("中文标题",// 标题
- defaultPieDataset,// 上面生成的数据,即传入要用于显示的数据
- true,// 是否显示图例
- true,// 是否生成工具提示
- true);// 是否生成URL
- // 如果前面的标题是中文的话则在页面是显示的时候会出现乱码,我的解决方法是在生成了JFreeChart对象后,
- // 将JFreeChart对象的标题重新设置一次,并将它的字体设置为中文字体,这样就不乱码了
- jfreeChart.setTitle(new TextTitle(jfreeChart.getTitle().getText(),
- new Font("宋体", Font.CENTER_BASELINE, 21)));
- // 这个对象是JFreeChart对象包含的一个主体对象,每个JFreeChart对象都包含一个类似的对象,
- // 该对象有前面的数据的引用等
- PiePlot piePlot = (PiePlot) jfreeChart.getPlot();
- // 如果没有这句的上面的标签出现中文的时候也是会乱码的,pieLot可以直接这样设置它的标签的字体,
- // 但是JFreeChart我就没有找到可以直接设置它的标题的字体的方法
- piePlot.setLabelFont(new Font("宋体", Font.CENTER_BASELINE, 16));
- // 下面一段是对下方显示的图例的中文的解决
- jfreeChart.getLegend(0).setItemFont(
- new Font("宋体", Font.CENTER_BASELINE, 15));
- ChartFrame chartframe = new ChartFrame("Test", jfreeChart);// First表示该Frame的标题,jfreechart表示要显示的JFreeChart对象
- chartframe.pack();// 自适应窗体
- chartframe.setVisible(true);
- }
- }
还可以将生成的Chart输出到一个输出流里面:
- ChartUtilities.writeChartAsJPEG(fos,// 输出到哪个输出流
- 1, // jpeg 图片的质量,0~1之间
- chart, // 统计图表对象
- 800,// 长
- 600// 宽
- );
0 0
- JfreeChart(1)——初探
- 初探JFreeChart
- jFreeChart初探
- jFreeChart初探
- 报表 —— JFreeChart
- JFreeChart—输出柱形图
- JFreeChart—输出饼状图
- 初涉JFreeChart (1)
- JFreeChart教程(1)
- JFreeChart—输出折线图
- JFreeChart—输出区域图
- JFreeChart—输出时序图
- JFreeChart—输出组合图表
- 深入探究JFreeChart(1)
- 深入探究JFreeChart(1)
- 深入探究JFreeChart(1)
- 深入探究JFreeChart(1)
- 深入探究JFreeChart(1)
- 素材-IT发展简史
- Android学习笔记(二)之basic view
- C#之AOP初探
- linux静态库和动态库编译及使用
- 黑马训练营--IOS学习---OC语言学习总结2
- JfreeChart(1)——初探
- 问题解决——在虚拟机上测试串口软件 收到错误数据
- 游戏操作
- 【cf437D】The Child and Zoo
- Redis学习手册(Sorted-Sets数据类型)
- Android绘图机制(五)自定义控件的官方实例
- public ,private,protected inheritance
- 第9周 项目6-3 求差数列
- test2048