`

Jfreechart学习笔记1-简单Pie图形创建

阅读更多
饼形状图形的创建的例子
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);

附件有简单例子下载




  • Pie.rar (2.7 KB)
  • 下载次数: 103
  • 大小: 61.1 KB
  • 大小: 58.6 KB
分享到:
评论

相关推荐

    Jfreechart学习笔记3-简单Line图形创建

    在本篇“JFreeChart学习笔记3-简单Line图形创建”中,我们将深入探讨如何使用JFreeChart库在Java环境中创建基本的线性图表。JFreeChart是一个强大的、开源的Java图表库,它允许开发者轻松地生成各种类型的图表,包括...

    Jfreechart学习笔记2-简单bar图形创建

    在本文中,我们将深入探讨如何使用JFreeChart库在Java中创建简单的柱状图,以及如何扩展到3D效果。JFreeChart是一个流行的开源图表库,适用于多种图表类型,包括条形图、线形图、饼图等。通过学习本文,你将能够利用...

    jfreechart1.0.3-demo-src

    1. **数据集的创建与管理**:JFreeChart 支持多种数据集,如 CategoryDataset(用于柱状图和饼图)、TimeSeriesCollection(用于时间序列图表)等。在 demo 中,你可以看到如何创建这些数据集,以及如何将数据填充到...

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    压缩包中的例子文件是学习JFreeChart的好资源,它们展示了如何创建和定制各种图表。通过分析源代码,开发者可以快速上手,并了解到如何将JFreeChart集成到自己的项目中。 4. **兼容性与性能**: JFreeChart是基于...

    jfreechart-1.0.19

    JFreeChart 是一个功能丰富的开源Java类库,专为在Java应用程序和Web应用中创建各种类型的图表而设计。这个库提供了广泛的数据可视化功能,包括折线图、柱状图、饼图、散点图、甘特图以及更多其他类型,使得开发者...

    struts2-jfreechart-plugin-2.1.8.1.jar

    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中文api (JFreeChart-1.0.5-Ch.chm)

    jfreechart-1.0.19-Demo-Source 源代码

    - **jFreeChartDemo**: 这是 JFreeChart 的演示程序,包含了各种类型的图表示例,这些示例展示了如何创建和定制图表,是学习 JFreeChart 的绝佳起点。 2. **图表创建** - **ChartFactory**: JFreeChart 提供了一...

    jfreechart-0.9.21 jar包和jfreechart-0.9.21-demo

    jfreechart-0.9.21的jar包和jfreechart-0.9.21-demo

    struts2-jfreechart-plugin-2.0.11.jar

    struts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jar

    jfreechart-1.0.19-demo-src

    jfreechart-1.0.19压缩包中有一个jfreechart-1.0.19-demo.jar,里面演示了各种图表的制作案例,包括BarChart、LineChart、PieChart、TimeSeriesChart、XYSeries等等,共309个例子,现开放源码,请各位下载,欢迎交流...

    jfreechart-1.0.19-demo.src

    5. **示例代码**:“20161128JFreeChart-Demo”可能是一个包含多个示例程序的目录,展示了如何使用JFreeChart库创建各种图表,包括但不限于简单的静态图表、动态更新的图表、自定义颜色和样式等。通过阅读和运行这些...

    JfreeChart的学习--饼形图

    JFreeChart是一个流行的Java库,专门用于创建各种类型的图表,如柱状图、线形图、饼图等。本文将深入探讨如何利用JFreeChart进行饼形图的绘制,并结合提供的标签“源码”和“工具”,分享一些实际的编程实践。 首先...

    jfreechart-1.0.19.jar和jcommon-1.0.23.jar

    JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: pie charts (2D and 3D):饼图(平面和立体) bar charts (regular and stacked, with an optional 3D ...

    JFreeChart1.0.13-demo-src(无错版)

    项目中要用到JFreeChart做图,但是DEMO源码要收费的,而且在CSDN上下载都是反编译DEMO出来的,到处都是异常就拿出来骗分,我自己花了1个小时间把所有异常都改掉了,并且测试无错。 这个包是我直接把我Eclipse项目...

    JFreeChart-1.0.19 的jar包以及源代码

    JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

    jfreechart-1.0.14-demo.jar 对应的源码

    JFreeChart 是基于 Java 的图形用户界面 (GUI) 应用程序的图表组件,它可以被嵌入到 Swing 或者 JavaFX 应用中。其设计目标是提供一个简单易用的 API,使得开发者能够方便地创建出复杂且富有表现力的图表。在源码中...

    jfreechart-1.0.0-rc1.jar

    jfreechart-1.0.0-rc1.jar需要的程序要下载

    jfreechart-1.0.13-demo.src

    总结来说,`jfreechart-1.0.13-demo.src` 提供的源代码是学习和研究 JFreeChart 的宝贵资源,通过深入学习这些示例,开发者不仅可以掌握图表的基本创建方法,还能了解如何进行高级定制和优化,提升 Java 图表开发...

Global site tag (gtag.js) - Google Analytics