JFreeChart| 图表高级自定义-图形渲染器Renderer

前言

JFreeChart中的图形渲染器用于在绘制图形时对图表的样式设计,最终呈现效果与图形渲染器有很大关联.


一.CategoryDataset 图形

CategoryPlot提供方法setRenderer来指定图形渲染器:

    public void setRenderer(CategoryItemRenderer renderer) {
        setRenderer(0, renderer, true);
    }

CategoryItemRenderer接口定义了所有渲染器必须提供的方法。如果要实现自定义渲染器,则应考虑扩展AbstractCategoryItemRenderer类

大多数渲染器属性使用“三层”方法定义。查找属性(例如,轮廓绘制outline paint))时,渲染器首先检查是否存在适用于渲染器绘制的所有项目的设置(在层0中)。如果有,则使用该设置,但如果它为null,则渲染器将查找下一层,其中包含属性的“每个系列(series)”设置(许多属性是基于每个系列定义的,因此这是一个层,即最常用的)。如果第1层设置为null,则渲染器将查找最后一层,该层提供默认或“基础(base)”设置。某些属性允许基本设置为null,而其他属性则强制执行非空值。

建议: 如果当我们知道具体的图形类型时可以更加细分到Render类型来定制图形渲染器

CategoryItemRenderer(interface)
    StatisticalBarRenderer
    AbstractCategoryItemRenderer(abstract class)
        AreaRenderer
        BarRenderer
            BarRenderer3D
            IntervalBarRenderer
                GanttRenderer
            LayeredBarRenderer
            StackedBarRenderer
                GroupedStackedBarRenderer
            StatisticalBarRenderer
            WaterfallBarRenderer
            BoxAndWhiskerRenderer
        CategoryStepRenderer
        LevelRenderer
        LineAndShapeRenderer
            DefaultCategoryItemRenderer
            LineRenderer3D
            StatisticalLineAndShapeRenderer
        MinMaxCategoryRenderer
        ScatterRenderer

二.XYDataset图形

XYPlot提供setRenderer方法来支持设置渲染器

    public void setRenderer(XYItemRenderer renderer) {
        setRenderer(0, renderer);
    }

XYItemRenderer接口用于在XYPlot上呈现单个(x,y)上的图形渲染,为了支持克隆图表,建议渲染器同时实现Cloneable和PublicCloneable接口。

XYItemRenderer结构如下:


三.PieDataset图形

不支持渲染器设置Renderer.


四.自定义图形渲染器

通常我们可以使用系统默认的图形渲染器进行功能开发既可,但是有时候有更高级的定制化需求时候,这需要我们自己来自定义图形渲染器了.
比如: 当我需要将柱状图的峰值显示成如下效果的时候,我们可以使用如下代码:

猜你喜欢

转载自blog.csdn.net/u011479200/article/details/81535339