11.2 JFreeChart进阶
前面介绍了如何使用JFreeChart生成饼图,开发者还可以通过其他配置来改进生成的统计图表,如显示图例、显示工具提示、显示3D饼图、设置图表标题字体、设置图例字体以及设置图表的标签字体以及透明度等。
11.2.1 显示图例
ChartFactory类中的createPieChart()接受5个参数,其中第二个参数用来指定是否显示图例。如果设置其参数值为true,就可以显示图例,代码如下所示。
// 使用工厂类创建饼图 JFreeChart chart = ChartFactory.createPieChart( "学校职称人员统计图", dpd, true, false, false);
运行该Java程序就可以看到生成包含图例的饼图,如图11.6所示。
11.2.2 显示工具提示
ChartFactory类中的createPieChart()接受5个参数,其中第三个参数用来指定是否显示工具提示。如果设置其参数值为true,就可以显示工具提示,代码如下所示。
// 使用工厂类创建饼图 JFreeChart chart = ChartFactory.createPieChart( "学校职称人员统计图", dpd, true, true, false);
运行该Java程序就可以看到生成的饼图。当把光标移到饼图上时,显示工具提示,如图11.7所示。
图11.6 包含图例的饼图
图11.7 包含工具提示的饼图
11.2.3 显示3D的饼图
通过调用ChartFactory的createPieChart3D()方法,就可以创建一个3D的饼图,代码如下所示。
// 使用工厂类创建饼图 JFreeChart chart = ChartFactory.createPieChart3D( "学校职称人员统计图", dpd, true, true, false);
运行该Java程序就可以看到生成的3D饼图,如图11.8所示。
图11.8 3D饼图
11.2.4 设置图表标题字体
通过调用JFreeChart实例的setTitle()方法可以用来设置图表标题以及标题字体等。这里设置图表标题为“学校职称人员统计图”,字体为宋体并加粗和倾斜,字体大小为20,代码如下所示。
//设置图标标题字体 chart.setTitle(new TextTitle("学校职称人员统计图", new Font("宋体", Font.BOLD + Font.ITALIC,20)));
运行该Java程序,可以看到图标的标题字体已经发生改变,如图11.9所示。
11.2.5 设置图例字体
通过调用JFreeChart实例的getLegend()方法可以获得图表中的图例。通过调用图例的setItemFont()来设置图例的字体。这里设置图例字体为黑体并加粗,字体大小为15,代码如下所示。
//取得图表的图例 LegendTitle lt = chart.getLegend(); //修改图例的字体 lt.setItemFont(new Font("黑体", Font.BOLD,15));
运行该Java程序,可以看到图例的字体已经发生改变,如图11.10所示。
图11.9 设置图表标题字体
图11.10 设置图例字体
11.2.6 设置图表的标签字体以及透明度
通过调用JFreeChart实例的getPlot()方法可以获得实际图表实例。通过调用其图表实例的setLabelFont()方法设置图表中标签的字体,setBackgroundAlpha()方法用来设置图表的背景透明度,setForegroundAlpha()方法用来设置图表的前景透明度。这里设置图表中标签的字体为微软雅黑黑体并倾斜,字体大小为30,并设置图表的背景透明度和前景透明度分别为0.98f和0.50f,代码如下所示。
//获得图表的Plot对象 PiePlot piePlot = (PiePlot) chart.getPlot(); //设置图表中标签的字体 piePlot.setLabelFont(new Font("微软雅黑", Font.ITALIC,30)); //设置图表的背景透明度 piePlot.setBackgroundAlpha(0.98f); //设置图表的前景透明度 piePlot.setForegroundAlpha(0.50f);
运行该Java程序,可以看到图表的标签字体以及透明度发生了改变,如图11.11所示。
图11.11 设置图表的标签字体以及透明度