您的位置:首页 > 产品设计 > UI/UE

使用JFreeChart生成饼图,不做任何注释,只求应用,生成的饼图放在D:\\fruit.jpg

2011-10-23 08:22 501 查看
/**
* 要是用JFreeChar生成饼图,不做任何注释,只求应用,生成的饼图放在D:\\fruit.jpg
*
* 1.加入jcommon-1.0.5.jar和jfreechart-1.0.2.jar
*
* 2.设置值
* dataset.setValue("苹果", 100);
* dataset.setValue("梨子", 200);
* dataset.setValue("葡萄", 300);
* dataset.setValue("香蕉", 400);
* dataset.setValue("荔枝", 500);
*
* fos_jpg = new FileOutputStream("D:\\fruit.jpg");
*/
package com.bjpowernode.drp.statreport;

import java.io.FileOutputStream;
import java.io.IOException;
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.data.general.DefaultPieDataset;

public class PieCharDemo {

public static void main(String[] args) throws IOException {

DefaultPieDataset data = getDataSet();

JFreeChart chart = ChartFactory.createPieChart3D("水果产量图",
data,
true,
false,
false);

FileOutputStream fos_jpg = null;

try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");

PiePlot3D plot = (PiePlot3D) chart.getPlot();

plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}={1}({2})", NumberFormat.getNumberInstance(),
new DecimalFormat("0.00%")));
plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}={1}({2})"));

ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, 400, 300,null);

} finally {
try {
fos_jpg.close();

} catch (Exception e) {
throw new RuntimeException("生成饼图失败!");
}
}

}

private static DefaultPieDataset getDataSet() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("苹果", 100);
dataset.setValue("梨子", 200);
dataset.setValue("葡萄", 300);
dataset.setValue("香蕉", 400);
dataset.setValue("荔枝", 500);

return dataset;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐