在上篇文章中已经讲了怎样生成一个PieChart,以及怎样解决中文问题!在这篇文章中主要是讲一些关于PieChart的设置,在上一篇文章中用的都是一些默认的配置!
首先先创建一个JFreeChart
DefaultPieDataset defaultPieDataset = new DefaultPieDataset(); defaultPieDataset.setValue("Category 1", 43.2); defaultPieDataset.setValue("Category nagative", -22); defaultPieDataset.setValue("Category 2", 27.8); defaultPieDataset.setValue("Category 0", 0); defaultPieDataset.setValue("Category 3", 79.5); defaultPieDataset.setValue("Category null", null); JFreeChart jfreeChart = ChartFactory.createPieChart("中文标题",// 标题 defaultPieDataset,// 上面生成的数据,即传入要用于显示的数据 true,// 是否显示图例 true,// 是否生成工具提示 true);// 是否生成URL
然后通过JFreeChart对象拿到PiePlot对象,并进行一些相应的设置
PiePlot piePlot = (PiePlot) jfreeChart.getPlot(); //设置前面每个模块的颜色 piePlot.setSectionPaint("Category 1", Color.CYAN); piePlot.setSectionPaint("Category 2", Color.BLUE); piePlot.setSectionPaint("Category 3", Color.GRAY);
pieDataset里面可以包含0,空值和负数,如果包含0或者空值,则将会显示一个标签,但是没有内容,而负值的话则会默认忽略,也可以修改默认设置将0和控制也忽略,
plot.setIgnoreZeroValues(true);//忽略0值 plot.setIgnoreNullValues(true);//忽略空值
如果想让某一块出来一点,可以这样设置
piePlot.setExplodePercent("Category 1", 0.30);//其中的数字是控制出来多少的
如果想出现一个立体的效果,那么在上面创建JFreeChart的时候就不要创建ChartFactory.createPieChart而是创建一个ChartFactory.createPieChart3D(...)