我想创建一个MxN图表网格 - 类似于
for i in M*N:
ax = fig.add_subplot(M, N, i + 1)
用于matplotlib
出现作为支持类 - 在org.jfree.chart.block
内
包。但是,我无法找到使用一组图表来安排/布局的文档,示例和测试用例。
答案 0 :(得分:2)
这部分API相当低级,主要由JFreechart内部使用。例如,GridArrangement
可用于图表中的create a particular legend layout, 。
在我看来,创建图表网格的最简单方法是使用Swing JPanel
和GridLayout
,并使用图表填充该网格。
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));
…