📄 piepic.java
字号:
package chart.demo;
import java.awt.image.BufferedImage;
import java.io.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.jfree.data.*;
import org.jfree.data.category.*;
import org.jfree.chart.*;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.*;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.*;;
/**
* 用于演示饼图的生成
* @author Winter Lau
*/
public class piePic {
public BufferedImage buffedImg()
{ DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("华夏影院", 109);
dataset.setValue("欧美影院", 49);
dataset.setValue("周星驰系列", 29);
dataset.setValue("刘德华系列", 17);
dataset.setValue("张曼玉系列", 14);
dataset.setValue("日韩影院", 12);
dataset.setValue("张柏芝系列", 9);
dataset.setValue("付费电影", 0);
// PiePlot pie = new PiePlot(dataset);
// pie.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} = ({2})"));
//通过工厂类生成JFreeChart对象
JFreeChart chart = ChartFactory.createPieChart3D("数据统计分析", dataset, true, false, false);
PiePlot plot = (PiePlot) chart.getPlot();
DecimalFormat df = (DecimalFormat)NumberFormat.getPercentInstance();
df.applyPattern("##0.0#%");
plot.setLabelGenerator(
new StandardPieSectionLabelGenerator("{0}=({2})",NumberFormat.getNumberInstance(),df)
);
// plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}: ({1}, {2})"));
chart.setBackgroundPaint(java.awt.Color.white);
BufferedImage x = chart.createBufferedImage(600,400);
return x;
}
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:\\pie.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}
/**
* 获取一个演示用的简单数据集对象
* @return
*/
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -