如何使用 GridArrangement 和 BlockContainer

How to use GridArrangement and BlockContainer

我想创建 MxN 图表网格 - 类似于

for i in M*N:
   ax = fig.add_subplot(M, N, i + 1)

对于 matplotlib

似乎支持类 - 在org.jfree.chart.block 包裹。但是,我一直无法找到将 arrangement/layout 与一组图表一起使用的文档、示例和测试用例。

感谢指点。

API 的这一部分相当低级,主要由 JFreechart 在内部使用。例如,GridArrangement 可用于在图表 .

create a particular legend layout

在我看来,创建图表网格的最简单方法是使用 Swing JPanelGridLayout,然后用您的图表填充该网格。

JPanel grid = new JPanel( new GridLayout(m,n) );
for(int i=0; i<m*n; i++)
   grid.add(new ChartPanel(createChart(i)));

您也可以使用 CombinedPlot。这允许添加任意数量的图,可以并排放置,也可以垂直堆叠(但据我所知,不是在网格上)。这种方法的好处是您的绘图将直接共享一个公共轴,并且可以很好地对齐。 (但这取决于您的问题:您的图表共享一个公共轴吗?也许两个?)

要在网格中排列图表面板,请在封闭容器上使用 GridLayout(),如相关 example:

中所示
f.setLayout(new GridLayout(M, N));
f.add(new ChartPanel(chart1));
f.add(new ChartPanel(chart2));
…