6.5 定制外观

回顾6.3节内容,CategoryPlot管理这一个BarRenderer的实例renderer。如果我们想获得这个renderer的引用,大量的定制选择项会变得有效。

6.5.1 直方条形图颜色

改变图表中每个系列直方图的颜色,使用如下代码:

BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setSeriesPaint(0, Color.gray);
renderer.setSeriesPaint(1, Color.orange);
renderer.setDrawBarOutline(false);

运行上面代码显示的结果如下图6.4.注意setSeriesPaint()方法是在抽象AbstractRenderer基类里面定义的——所以,我们可以在任何类型的renderer里面使用。

图6.4一个直方条形图(参考:BarExample3.java)

6.5.2 种类里直方条形图之间的空间

此外,renderer还可以控制每个种类中直方条形图之间的间距。因此我们可以在同一个种类中将空间完全去掉,代码如下:

BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setItemMargin(0.0);

代码显示的结果如图6.5所示。

图6.5一个直方条形图(参考:BarExample4.java)

注意条形图看上去有点变宽——主要是因为JFreeChart分配空间时,分配给种类条形图之间的间距的尺度比较少,所以看上去就显得有点长宽了。