jfreechart饼图

public class PieCharts { private static final Font CHART_FONT = new Font("黑体", 12, 12); // 生成饼图数据集对象 public PieDataset createDataset(List<Object[]> list) { DefaultPieDataset dataset = new DefaultPieDataset(); int length = list.size(); Object[] o = null; for (int i = 0; i < length; i++) { o = list.get(i); double num = (Long) o[0]; String name = (String) o[1]; //设置数据集内容,(String,Double) dataset.setValue(name, num); } return dataset; } // 生成图表主对象JFreeChart public JFreeChart createChart(PieDataset dataset, String year, String name) { // 定义图表对象 JFreeChart chart = ChartFactory.createPieChart(name + " " + year + "消费类别统计图", dataset, true, true, false); /******************************* * 改变显示的字体,不然显示时乱码 ****************************/ // 设置标题栏字体 chart.getTitle().setFont(CHART_FONT); // 获得图表显示对象 PiePlot pieplot = (PiePlot) chart.getPlot(); // 设置图表标签字体 pieplot.setNoDataMessage("No data available"); pieplot.setCircular(true); // 中间图的字体设置 pieplot.setLabelFont(CHART_FONT); pieplot.setLabelGap(0.01D);// 间距 // 最下面说明文字的字体设置 chart.getLegend().setItemFont(CHART_FONT); // 设置显示时,饼图数据带上数据的百分比 // ("{0}: ({1},{2})")是生成的格式,{0}表示section名,{1}表示section的值,{2}表示百分比。 // 而new DecimalFormat("0.00%")表示小数点后保留两位。 pieplot.setNoDataMessage("无数据可供显示!"); // 没有数据的时候显示的内容 pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator( ("{0}: ({2})"), NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); return chart; } public void SaveFileAsJPEG(String fileName, JFreeChart chart, int w, int h) { // 生成图形,保存到指定文件,文件类型为jpg try { ChartUtilities.saveChartAsPNG(new File(fileName), chart, w, h); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

你可能感兴趣的:(jfreechart饼图)