piechartpicture.java

来自「jfreechart不错的教程例子谢谢!」· Java 代码 · 共 72 行

JAVA
72
字号
package org.jfree.chart.demo;

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.PiePlot3D;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

public class PieChartPicture {
	public static void main(String[] args) {
		PieDataset dataset = getDataSet();
		JFreeChart chart = ChartFactory.createPieChart3D("项目进度分布", // title
				dataset,// data
				true,// include legend
				true, false);
		PiePlot3D plot = (PiePlot3D) chart.getPlot();
		// 图片中显示百分比:默认方式
		// plot.setLabelGenerator(new StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));
		// 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位
		plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));
		// 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例
		plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));
		// 设置背景色为白色
		chart.setBackgroundPaint(Color.white);
		// 指定图片的透明度(0.0-1.0)
		plot.setForegroundAlpha(1.0f);
		// 指定显示的饼图上圆形(false)还椭圆形(true)
		plot.setCircular(true);
		// 设置图标题的字体
		Font font = new Font("黑体", Font.CENTER_BASELINE, 20);
		TextTitle title = new TextTitle("项目状态分布");
		title.setFont(font);
		chart.setTitle(title);
		FileOutputStream fos_jpg = null;
		try {
			System.out.println("开始生成图表!");
			fos_jpg = new FileOutputStream("F:\\项目状态分布.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f, chart, 640, 480, null);
			//ChartUtilities.writeChartAsJPEG(fos_jpg,chart, 640, 480, null);
			System.out.println("图表生成完毕!");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}	
	}

	private static PieDataset getDataSet() {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("市场前期", new Double(10));
		dataset.setValue("立项", new Double(15));
		dataset.setValue("计划", new Double(10));
		dataset.setValue("需求与设计", new Double(10));
		dataset.setValue("执行控制", new Double(35));
		dataset.setValue("收尾", new Double(10));
		dataset.setValue("运维", new Double(10));
		return dataset;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?