JFreeChart| JFreeChart组合图表 (Combined Charts)

前言

JFreeChart支持几个图区类(可以管理着多个子类)组合而成的图表。 图区类可以管理几个子类:

CombinedDomainCategoryPlot / CombinedRangeCategoryPlot
CombinedDomainXYPlot / CombinedRangeXYPlot ;

本文主要讲解四种组合图:
组合X种类图区(Combined Domain Category Plot)
组合Y种类图区(Combined Range Category Plot)
组合X-XY图区(Combined Domain XY Plot)
组合Y-XY图区(Combined Range XY Plot)

一.组合X种类图区(Combined Domain Category Plot)

组合主域种类图区就是在一个图区上显示两个或者多个子图区(CategoryPlot实例),共享一个X轴的图区。 每个子图区维护自己的Y轴。 如图所示
这里写图片描述
显示图表可以是水平的,也可以是垂直方向的——实例演示的是垂直的图表.

创建图表的核心:
提供了一个很好的例子,演示如何创建该图表的类型。 关键的步骤是创建CombinedDomainCategoryPlot实例,然后添加两个子图区:

CategoryAxis domainAxis = new CategoryAxis("Category");
CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot(domainAxis);
plot.add(subplot1, 2);
plot.add(subplot2, 1);
JFreeChart result = new JFreeChart(
"Combined Domain Category Plot Demo",
new Font("SansSerif", Font.BOLD, 12),
plot,
true
);

注意:

  • 我们subplot1添加码值时是2(方法add()的第二个参数),而subplot1添加的是1呢?因为这控制着分配给各个图区的空间大小。

  • 子图区的CategoryPlot实例对象将它们的X轴设置为null,

例如在演示的实例中,代码如下:

CategoryDataset dataset1 = createDataset1();
NumberAxis rangeAxis1 = new NumberAxis("Value");
rangeAxis1.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
LineAndShapeRenderer renderer1 = new LineAndShapeRenderer();
renderer1.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
CategoryPlot subplot1 = new CategoryPlot(dataset1, null, rangeAxis1, renderer1);
subplot1.setDomainGridlinesVisible(true);

CategoryDataset dataset2 = createDataset2();
NumberAxis rangeAxis2 = new NumberAxis("Value");
rangeAxis2.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
BarRenderer renderer2 = new BarRenderer();
renderer2.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
CategoryPlot subplot2 = new CategoryPlot(dataset2, null, rangeAxis2, renderer2);
subplot2.setDomainGridlinesVisible(true);

二.组合Y种类图区(Combined Range Category Plot)

三.组合X-XY图区(Combined Domain XY Plot)

四.组合Y-XY图区(Combined Range XY Plot)

猜你喜欢

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