如何在 pylab matplotlib python 中分层嵌套子图?
How to nest subplots hierchically in pylab matplotlib python?
概念:
假设我有一些函数可以创建多个子图的某种排列。现在我想把这些做成网格。
因此有一组子图区域,人们想在其中绘制一个本身有多个子图的图形。
解决这个问题: 如果我提前知道整个布局,我可以做到这一点,我可以耐心地弄清楚如何指定每个地块的绝对位置和大小。然后我可以使用 subplot2grid() 命令以绝对坐标布置它。
问题:糟糕!当你编写一个函数来制作带有子图的精美图形时,你可能只是按原样使用它。然后有一天你想要一个这些的网格。您不想返回并重新编写原始版本以现在在网格上工作。而且,如果您编辑该原始函数,您就不必重新考虑如何将其全部转换为网格。
你想要什么:
从逻辑上讲,如果子图是可嵌套的,那将是非常令人愉快的。所以你想要这样的东西。但这不存在。
for i in range (1,4):
foo = subplot (1,3,i) # specify a region in your grid
for j in range(1,5):
nested_subplot(foo,4,1,j) # now subdivide the specifed region into a subplot
plot( whatever)
我在想要么一定存在一些我不知道的语法,要么有一个聪明的技巧可以用来编写像 nested_subplot(foo,4,1,nested)
但据我所知,subplot只是简单地细分了一个图形。它不会细分图形的某些特定部分。还是我错了?
似乎应该有某种方法可以在图中包含子图或在子图的单元格中包含子图。
胆子大的可以使用matplotlib master然后访问subfigures
:https://matplotlib.org/devdocs/gallery/subplots_axes_and_figures/subfigures.html.
如果您需要使用已发布的版本,您可以嵌套子网格规范 https://matplotlib.org/tutorials/intermediate/gridspec.html
概念: 假设我有一些函数可以创建多个子图的某种排列。现在我想把这些做成网格。
因此有一组子图区域,人们想在其中绘制一个本身有多个子图的图形。
解决这个问题: 如果我提前知道整个布局,我可以做到这一点,我可以耐心地弄清楚如何指定每个地块的绝对位置和大小。然后我可以使用 subplot2grid() 命令以绝对坐标布置它。
问题:糟糕!当你编写一个函数来制作带有子图的精美图形时,你可能只是按原样使用它。然后有一天你想要一个这些的网格。您不想返回并重新编写原始版本以现在在网格上工作。而且,如果您编辑该原始函数,您就不必重新考虑如何将其全部转换为网格。
你想要什么: 从逻辑上讲,如果子图是可嵌套的,那将是非常令人愉快的。所以你想要这样的东西。但这不存在。
for i in range (1,4):
foo = subplot (1,3,i) # specify a region in your grid
for j in range(1,5):
nested_subplot(foo,4,1,j) # now subdivide the specifed region into a subplot
plot( whatever)
我在想要么一定存在一些我不知道的语法,要么有一个聪明的技巧可以用来编写像 nested_subplot(foo,4,1,nested)
但据我所知,subplot只是简单地细分了一个图形。它不会细分图形的某些特定部分。还是我错了?
似乎应该有某种方法可以在图中包含子图或在子图的单元格中包含子图。
胆子大的可以使用matplotlib master然后访问subfigures
:https://matplotlib.org/devdocs/gallery/subplots_axes_and_figures/subfigures.html.
如果您需要使用已发布的版本,您可以嵌套子网格规范 https://matplotlib.org/tutorials/intermediate/gridspec.html