JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)
FreeChart生成饼形图(3) (转自 JSP开发技术大全)
通过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,关键代码如下;
plot.setCircular(False);
下面让饼形图实现透明效果,代码如下:
plot.setForegroundAlpha(0.8f);
转载于:https://www.cnblogs.com/meimao5211/p/3262036.html
JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)相关推荐
- java cutline_利用JFreeChart生成饼形图
14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如果想生成普通效果的饼形图,需要通过工厂类ChartFactory的 ...
- Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)
工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...
- freemarker+Jfreechart生成Word文档(含图片)
这几天再弄一个报表,要统计一些信息最终的部分展示结果如下: 基本工具freemarker,jfreechart 工程的部分结构如下 与生成Word有关的类主要有FreemarkerConfigurat ...
- Java使用poi和jfreechart生成excel图表图片
最近项目在频繁的操作excel,里边涉及到很多和图表有关的东西.有时候需要使用java操作excel自带的图标,比较复杂的我们都是使用excel模板的形式实现. 除此之外,也有一些功能只需要生成对应 ...
- 【HM】第11课:JSTL标签+JSP开发模式
<pre> day11 昨天内容回顾 (1)jsp *jsp的三个指令 *jsp里面九个内置对象 request response session config application e ...
- JFreeChart 生成图表 在linux服务器中文乱码问题
JFreeChart 生成图表 在linux服务器中文乱码问题 java中用JfreeChart可以生成图表,而不借助于flash,js,canvas等技术: 图表中的文字生成依赖于系统本地字体,但在 ...
- java导出pdf报告之六:使用jfreechart生成饼状图和柱状图
关于使用jfreechart生成饼状图和柱状图网上也有一大推,我在这里也不做太多介绍,就直接附上我的实现,并添加了一下注释,供大家参考. 生成饼状图: /*** @param name 图片的名称* ...
- mysql生成饼状图_pChart生成饼形图的代码 支持中文
经常和数据打交道的避免不了生成各种图形,pChart是一个开源的图表生成库,可以生成几十种简单或者复杂或者看不懂的图标,这里的代码是生成饼形图,使用该程序PHP需要开启GD服务,另外pChart支持中 ...
- 用Python写一段生成饼形图代码
生成饼形图的代码可以使用 Python 中的 Matplotlib 库来实现. 以下是一个简单的示例代码: import matplotlib.pyplot as plt# 定义饼图中各部分的大小 s ...
最新文章
- 银行启动开放战略,能否赢回金融科技下半场?
- flask 检测post是否为空_用Flask和Vue制作一个单页应用(五)
- 底部菜单_css实现移动端底部导航菜单隆起效果
- 史上最硬核的Linux依赖问题解决方案
- LambdaMART简介——基于Ranklib源码(二 Regression Tree训练)
- linux笔记之 开机服务启动的控制,系统日志的查看,防火墙的关闭
- MySQL数据库 基本操作语句
- C#获取屏幕分辨率(大小)
- python鼠标碰撞_Python+opencv第5节鼠标响应事件,pythonopencv,第五节
- NET框架下使用双缓冲技术绘图
- $$a,PHP独有的可变变量
- 2021-0316:梦中明白在作梦
- Java开发发送短信功能的实战教程(真实项目已在使用)
- 电影推荐之《哈利波特与阿兹卡班的囚徒》 隐私策略(Privacy policy)
- PostgreSQL 杀会话
- VNA测量时如何制作一个TRL校准夹具
- 解决can't handle non absolute segment in ljmp 的问题
- C++ Opencv 实现Canny算法
- BAT包围下的企业协作与通信之道
- cglib库Enhancer、Callback的使用
热门文章
- latex表格单元格内换行
- 可穿戴设备未来十大趋势
- Photoshop“替换颜色”实现局部换色
- python爬虫脚本 初级入门爬虫英雄联盟所有皮肤_Python爬虫练习:20行Python代码爬取王者荣耀全英雄皮肤...
- 考研数学整理错题详细攻略,建议收藏!
- 11.3.14 RTRIM(S)函数
- java枚举工具类_Java 枚举
- 什么是PV、UV、PR
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
- 女生节相关的微信公众号图文排版应该用哪些素材?