🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 14.5 组合Y-XY图区 ### 14.5.1 概述 组合Y-XY图区就是一个图区显示两个或者多个子图区(XYPlot实例),共享一个Y轴。每一个子图区维护自己的X轴。如下图14.4所示. ![](https://box.kancloud.cn/2016-01-23_56a3408653642.png) 图14.4 组合Y-XY图区(参见:CombinedXYPlotDemo5.java) 图区可能水平显示也可能垂直显示(本例子中垂直显示)。 ### 14.5.2 构建图表 CombinedXYPlotDemo2java实例演示了如何创建该类型的图表。关键的步骤是创建一个实例CombinedRangeXYPlot,并在该实例上添加两个子图区: ``` // create the plot... CombinedRangeXYPlot plot = new CombinedRangeXYPlot(new NumberAxis("Value")); plot.add(xyplot, 1); plot.add(xyplot_0_, 1); return new JFreeChart( "Combined (Range) XY Plot", JFreeChart.DEFAULT_TITLE_FONT, plot, true ); ``` 注意两个图区的码值为什么都是1呢?因为该数值控制着每个图区分配的空间大小。 子图区是XYPlot实例,将自己的X轴设置为null。例如,下面的代码演示了这个特征: ``` IntervalXYDataset intervalxydataset = createDataset1(); XYBarRenderer xybarrenderer = new XYBarRenderer(0.2); xybarrenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator( "{0}: ({1}, {2})", new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0,000.0"))); XYPlot xyplot = new XYPlot(intervalxydataset, new DateAxis("Date"), null, xybarrenderer); XYDataset xydataset = createDataset2(); StandardXYItemRenderer standardxyitemrenderer = new StandardXYItemRenderer(); standardxyitemrenderer .setBaseToolTipGenerator(new StandardXYToolTipGenerator( "{0}: ({1}, {2})", new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0,000.0"))); XYPlot xyplot_0_ = new XYPlot(xydataset, new DateAxis("Date"), null, standardxyitemrenderer); ```