如何使用GridArrangement和BlockContainer

时间:2015-08-03 07:51:10

标签: jfreechart

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

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

用于matplotlib

出现作为支持类 - 在org.jfree.chart.block内 包。但是,我无法找到使用一组图表来安排/布局的文档,示例和测试用例。

指针赞赏。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

image