JFreeChart_PieChart

package com.jfreechart; import java.awt.Color; import java.awt.Font; 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.PiePlot; import org.jfree.chart.title.TextTitle; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; /** * * @ClassName: JFreeChart_PieChart * @author xialong * @date Jan 25, 2011 8:00:41 PM * @Description: * JFreeChart生成饼图 * */ public class JFreeChart_PieChart { public static void main(String arg[]){ try { print(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 输出图片 * @throws IOException */ public static void print() throws IOException{ FileOutputStream fos = new FileOutputStream("D://jfreechart//pie"+System.currentTimeMillis()+".jpg"); ChartUtilities.writeChartAsJPEG(fos,//输出到那个流, 1, //图片质量,0~1 createJFreeChart(), //图表对象 800,//宽 600,//高 null//ChartRenderingInfo信息 ); fos.close(); } /** * 产生JFreeChart对象 * @return */ private static JFreeChart createJFreeChart(){ JFreeChart chart = null; //平面饼图 chart = ChartFactory.createPieChart("", createDataset(), true, true, false); //3d饼图 // chart = ChartFactory.createPieChart3D("", createDataset(), true, true, false); TextTitle title = new TextTitle("测试饼状图", new Font("宋体", Font.BOLD, 20)); // 解决曲线图片标题中文乱码问题 chart.setTitle(title); //通过JFreeChart 对象获得 plot:PiePlot!! PiePlot pieplot = (PiePlot)chart.getPlot(); // 没有数据的时候显示的内容 pieplot.setNoDataMessage("No data available"); // 设置无数据时的信息显示颜色 pieplot.setNoDataMessagePaint(Color.red); //把Lable 为”Two” 的那一块”挖”出来10% pieplot.setExplodePercent("Two", 0.3D); //设置背景透明度 pieplot.setBackgroundAlpha(0.9f); //设置前景透明度 pieplot.setForegroundAlpha(0.6f); // 指定饼图轮廓线的颜色 pieplot.setBaseSectionOutlinePaint(Color.white); pieplot.setBaseSectionPaint(Color.BLACK); // 指定显示的饼图上圆形(true)还椭圆形(false) pieplot.setCircular(true); //("{0}: ({1},{2})")是生成的格式, //{0}表示数据名,{1}表示数据的值,{2}表示百分比。可以自定义。 //而new DecimalFormat("0.00%")表示小数点后保留两位。 pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator( ("{0}({1}):{2}"), NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); return chart; } /** * 产生图像的数据集 * @return */ private static PieDataset createDataset(){ //注意是DefaultPieDataset!! DefaultPieDataset defaultpiedataset = new DefaultPieDataset(); defaultpiedataset.setValue("One", new Double(43.200000000000003D)); defaultpiedataset.setValue("Two", new Double(10D)); defaultpiedataset.setValue("Three", new Double(27.5D)); defaultpiedataset.setValue("Four", new Double(17.5D)); return defaultpiedataset; } }

形成 图片如下:

JFreeChart_PieChart_第1张图片

你可能感兴趣的:(Date,String,jfreechart,测试,Class,plot)