饼形状图形的创建的例子
package com.langhua.Pie;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
public class Pie {
public static void main(String[] args) {
//数据
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("中文", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);
dataset.setValue("Category 4", null);
dataset.setValue("Category 5", 0);
dataset.setValue("Category 6", -50.0f);
//创建 Jfreechart对象
JFreeChart jfreechart = ChartFactory.createPieChart("Simple Pie Chart", dataset, true, true, false);
PiePlot piePlot = (PiePlot) jfreechart.getPlot();
//指定分类饼的颜色
piePlot.setSectionPaint("中文",Color.blue);
piePlot.setSectionPaint("Category 2",Color.red);
piePlot.setSectionPaint("Category 3",Color.yellow);
//设置Pie的边框是否可见
piePlot.setSectionOutlinesVisible(true);
// 指定图片的透明度(0.0-1.0)
piePlot.setForegroundAlpha(1.0f);
//设置边框的颜色
piePlot.setBaseSectionOutlinePaint(Color.green);
//设置边框的粗细,new BasicStroke(2.0f)
piePlot.setBaseSectionOutlineStroke(new BasicStroke(1));
//设置空值,0值,负值是否显示出来,如果显示的话就是false
piePlot.setIgnoreNullValues(true);
piePlot.setIgnoreZeroValues(true);
//设置上面的样式,0表示KEY,1表示VALUE,2表示百分之几,DecimalFormat用来显示百分比的格式
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}=>{1}({2})",NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));
//设置下面方框的样式,0表示KEY,1表示VALUE,2表示百分之几,DecimalFormat用来显示百分比的格式
piePlot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}=>{1}({2})",NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));
//爆炸模式,使Pie的一块分离出去,不支持3D
piePlot.setExplodePercent("Category 1", 0.10);
piePlot.setExplodePercent("Category 2", 0.10);
piePlot.setExplodePercent("Category 3", 0.10);
//定义字体格式
Font font = new Font("微软雅黑", Font.CENTER_BASELINE, 12);
//定义图片标题
TextTitle title = new TextTitle("Pie状图");
//设置标题的格式
title.setFont(font);
//把标题设置到图片里面
jfreechart.setTitle(title);
//设置字体,非常关键不然会出现乱码的,下方的字体
jfreechart.getLegend().setItemFont(font);
//Pie图的字体
piePlot.setLabelFont(font);
//创建输出流
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("c:\\Pie.jpg");
//用工具把图象写到硬盘,支持两种格式,JPG,PNG,还支持MAP
ChartUtilities.writeChartAsJPEG(fos_jpg,0.99f,jfreechart,640,480,null);
fos_jpg.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
PiePlot3D图象的创建和PiePlot基本一样,就是创建的时候的区别,还有3D不支持爆炸模式
JFreeChart jfreechart = ChartFactory.createPieChart3D("Simple Pie Chart", dataset, true, true, false);
PiePlot3D piePlot = (PiePlot3D) jfreechart.getPlot();
解决乱码的问题
1.标题乱码,重新定义TextTitle title = new TextTitle("Pie状图");标题,再设置字体,再把标题到图像上面
2.下面底部字体的乱码jfreechart.getLegend().setItemFont(font);这样设置就可以解决
3.图形旁边的字体乱码piePlot.setLabelFont(font);
如下
//定义字体格式
Font font = new Font("微软雅黑", Font.CENTER_BASELINE, 12);
//定义图片标题
TextTitle title = new TextTitle("Pie状图");
//设置标题的格式
title.setFont(font);
//把标题设置到图片里面
jfreechart.setTitle(title);
//设置字体,非常关键不然会出现乱码的,下方的字体
jfreechart.getLegend().setItemFont(font);
//Pie图的字体
piePlot.setLabelFont(font);
附件有简单例子下载
- 大小: 61.1 KB
- 大小: 58.6 KB
分享到:
相关推荐
NULL 博文链接:https://langhua9527.iteye.com/blog/395327
NULL 博文链接:https://langhua9527.iteye.com/blog/395244
freechart1.0.3-demo-src
struts2-jfreechart-plugin-2.1.8.1.jar
JFreeChart中文api (JFreeChart-1.0.5-Ch.chm) JFreeChart中文api (JFreeChart-1.0.5-Ch.chm)
jfreechart-0.9.21的jar包和jfreechart-0.9.21-demo
struts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jar
jfreechart-1.0.19压缩包中有一个jfreechart-1.0.19-demo.jar,里面演示了各种图表的制作案例,包括BarChart、LineChart、PieChart、TimeSeriesChart、XYSeries等等,共309个例子,现开放源码,请各位下载,欢迎交流...
jfreechart-1.0.19-Demo-Source 源代码,亲自整理测试,绝对可用
jFreeChart展示web图表---五分钟上手
jfreechart-0.9.1-US-v1 说明文档 jfreechart-0.9.1-US-v1 说明文档
Java 最优秀的画图工具,包括Jar文件和各种例子文件!共享!多支持!
项目中要用到JFreeChart做图,但是DEMO源码要收费的,而且在CSDN上下载都是反编译DEMO出来的,到处都是异常就拿出来骗分,我自己花了1个小时间把所有异常都改掉了,并且测试无错。 这个包是我直接把我Eclipse项目...
jfreechart-1.0.0-rc1.jar需要的程序要下载
jfreechart-1.0.19-demo.src 示例中源码
jfreechart-1.0.6-demo源码
jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13
jfreechart-1.0.14.zip中包含jfreechart-1.0.14-demo.jar所对应的源码。
jfreechart-1.0.14-swt.jar