14.3 利用JFreeChart生成饼形图

通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图;如果想生成普通效果的饼形图,需要通过工厂类ChartFactory的createPieChart()方法获得JFreeChart类的实例,如果想生成3D效果的饼形图,需要通过工厂类ChartFactory的createPieChart3D()方法获得JFreeChart类的实例,这两个方法的入口参数是完全相同的,各个入口参数的类型及功能如表14.3所示。

表14.3 绘制饼形图方法的入口参数类型及功能

参 数 序 号

入 口 参 数

参 数 功 能

1

String title

图表标题

2

PieDataset dataset

绘图数据集

3

boolean legend

用于设定是否显示图例

4

boolean tooltips

用于设定是否采用标准生成器

5

boolean urls

用于设定是否包生成链接

绘制饼形图时,需要通过DefaultPieDataset数据集封装数据,该数据集中的每一个元素是由一组键值对组成的,这与Map集合有些类似,DefaultPieDataset数据集通过setValue()方法添加数据,setValue()方法有两个重载方法,均有两个入口参数,并且每个参数的含义是相同的,第一个入口参数为图例名称,第二个入口参数统计数据,它们的具体定义如下:

public void setValue(Comparable key,

Number value) {

this.data.setValue(key, value);

fireDatasetChanged();

}

public void setValue(Comparable key,

double value) {

setValue(key, new Double(value));

}

可以通过绘图区对象PiePlot的setForegroundAlpha(float

alpha)方法,实现饼图的透明效果,入口参数alpha的取值范围在0.0和1.0之间,当为0.0时,将不显示饼图,当为1.0时,则不存在透明效果,当超出该范围时,将抛出如下异常:

java.lang.IllegalArgumentException:

alpha value out of range

 示例14-03 编程类图书年销售额百分比饼形图分析

下面来看一个绘制饼形图的例子,该例绘制的饼形图效果如图14.4和图14.5所示。

 

图14.4 普通效果的饼形图 图14.5 3D效果的饼形图

代码14-03 光盘位置:光盘\mingrisoft\14\sl\03

本示例使用的模拟绘图数据如下:

String[]

cutline; // 图例

Double[]

data; // 绘图数据

this.cutline = new String[] { "ASP",

"JSP", "PHP", "Hibernate", "Spring", "数据库" };

this.data = new

Double[cutline.length];

for (int i = 0; i <

data.length; i++) {

data[i] = 1

+ Math.random() * 100;

}

创建DefaultPieDataset数据集的代码如下:

DefaultPieDataset dataset = new

DefaultPieDataset();

for (int i = 0; i <

cutline.length; i++) {

dataset.setValue(cutline[i], data[i]);

}

创建绘制3D效果饼形图的JFreeChart实例,代码如下:

JFreeChart chart =

ChartFactory.createPieChart3D(chartTitle, // 图表标题

dataset, // 绘图数据集

False, // 设定是否显示图例

False, // 设定是否显示图例名称

False); // 设定是否生成链接

 说明:这里绘制的是图14.5所示的3D效果图,如果想绘制图14.4所示的普通效果图,只需将createPieChart3D()方法改为createPieChart()方法。

当需要在图片上显示中文时,建议不要使用反锯齿功能,这样能够保证汉字的清晰度,代码如下:

chart.setAntiAlias(False);

可以自行定义图表标题的字体、样式、大小和颜色等,代码如下:

TextTitle title = chart.getTitle();

title.setFont(new Font("汉真广标",

Font.BOLD, 21));

title.setPaint(Color.RED);

下面通过绘图区对象设置饼状图的绘制方向,可以按顺时针方向绘制,也可以按逆时针方向绘制,以及开始绘制第一段圆弧的角度,关键代码如下:

plot.setDirection(Rotation.ANTICLOCKWISE);

plot.setStartAngle(90);

可以设置饼形图的外观效果,例如圆形(True)或椭圆形(False),默认为圆形,建议在绘制3D效果图时将其设为False,

java cutline_利用JFreeChart生成饼形图相关推荐

  1. JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)

    FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...

  2. java后台利用模板生成Word文档提供前台下载

    2016.12.06更新,java后台利用Apache poi生成Excel文档提供前台下载,博客链接http://blog.csdn.net/u010251278/article/details/5 ...

  3. 利用JFreeChart生成简单柱状图(Java)

    1 package barchartdemo1; 2 3 import <a href="http://lib.csdn.net/base/javaee" class='re ...

  4. java中利用freemarker生成样式比较复杂的word

    这两天接到一个需求,要在系统中生成word版的需求规格说明书,领导给了个之前的样本给我,要求挺高,必须和给的样本基本一样. 基本样式主要有多级标题.动态图片.页眉页脚等,如下(内容部分因为隐私就不贴出 ...

  5. Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)

    工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...

  6. java绘制均线图_利用JFreeChart绘制股票K线图完整解决方案

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

  7. java的json导出excel_利用json生成excel表格

    起因: 之前利用反射生成excel导出,这个组件本来挺好用的,结果,坑爹的本地研发没有问题,生产环境却有问题.不知道什么原因直接导致服务重启,还重新加载类,直接导致jvm的永久区内存溢出. 异常: j ...

  8. freemarker 生成java_半自动化Java代码生成器[利用freemarker模板生成]

    rapid-generator 半自动化Java代码生成器[利用freemarker模板生成] 增加一些定制和扩展, 修改为基于MAVEN的格式. 整体架构保持不变. 增加的特性为: 支持表名前缀去除 ...

  9. Java使用poi和jfreechart生成excel图表图片

    最近项目在频繁的操作excel,里边涉及到很多和图表有关的东西.有时候需要使用java操作excel自带的图标,比较复杂的我们都是使用excel模板的形式实现.  除此之外,也有一些功能只需要生成对应 ...

最新文章

  1. IT英语6-Java常用英语词汇总结
  2. 20180104小测
  3. c++学习笔记之基础篇
  4. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手
  5. mrunit_使用MRUnit测试Hadoop程序
  6. LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)
  7. 找不到visual studio模板信息 解决方法
  8. boot入门思想 spring_微服务架构之SpringBoot详解,夯实底层知识,带你轻松入门开发...
  9. unity3d与eclipse集成开发android应用
  10. python爬网站信息_爬取网页信息的小能手——微软PowerBI
  11. Spring3注解零配置【私塾在线原创】
  12. mysql 水晶报表_Crystal Reports 2008(水晶报表) JDBC连接mysql数据库
  13. 计算机有什么简便快捷方法,运行快捷键(电脑常用快捷键大全)
  14. 云计算行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  15. 笔记本电脑键盘失灵怎么办
  16. 产品经理必修课之互联网产品设计流程
  17. 391、Java框架46 -【Hibernate - 查询HQL、查询Criteria、查询标准SQL】 2020.10.19
  18. photoshop名人堂
  19. /usr/bin/ld:找不到 -lxxx
  20. 计算机三级网络技术分值占比,全国计算机等级考试三级考试题型及分值比例

热门文章

  1. WiFi、蓝牙、NFC哪家强?短距离无线通信技术对比分析
  2. 如果面试时直接怒怼面试官
  3. ASIC Design and C Model
  4. 小程序map组件一——使用腾讯地图个性化地图组件、腾讯云可视化大屏展示
  5. ESP32S2(12K)-DS18B20数码管显示温度
  6. c语言char str什意思,C语言中,charstr的str到底表示什么?
  7. Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection(速读啊)内含与u-shape的对比
  8. Docker学习之六:基于Dockerfile构建镜像
  9. 架构设计分布式数据结构与算法面试题(2020最新版)
  10. AI对项目管理的影响