gpt4 book ai didi

matplotlib - matplotlib 中是否存在用于在子图中定义子图网格的工具?

转载 作者:行者123 更新时间:2023-12-03 20:17:59 25 4
gpt4 key购买 nike

我有一个我想使用的绘图布局,其中 9 个不同的数据簇被布置在一个方形网格上。网格中的每个框都包含 3 个并排布置的箱线图。

我最初的想法是这将适合 3x3 子图布局,每个单独的子图本身被划分为 3x1 子图布局。

我见过这个:Embedding small plots inside subplots in matplotlib这似乎可以让您在子图中定义单独的、手动放置的图。然而,将子图空间递归分割成 < 10 个易于寻址的子图的网格的想法似乎是一个显而易见的想法,我不敢相信它没有被直接实现。

最佳答案

我认为嵌套 gridspec 示例 here是你正在寻找的。
我已经将他们的示例改编为您描述的网格模式的模型,它使用 gridspec 创建一个轴列表,然后迭代它们的索引以填充它们。这种方法应该符合您对“3x3 子图布局,每个单独的子图本身被划分为 3x1 子图布局”的需求。

import matplotlib as mpl
from matplotlib import gridspec
from matplotlib import pyplot as plt

f= plt.figure(figsize=(5, 5))
gs = gridspec.GridSpec(3, 3, wspace=0.5, hspace=0.2) #these are the 9 clusters

for i in range(9):
nested_gs = gridspec.GridSpecFromSubplotSpec(1, 3, subplot_spec=gs[i], wspace=0.5) # 1 row, 3 columns for each cluster

for j in range(3): #these are the 3 side by side boxplots within each cluster
ax = plt.Subplot(f, nested_gs[j])
ax.text(0.5, 0.5, "ax%d" % (i+1), va="center", ha="center", fontsize=9)

#ax.boxplot(data) # this is where you'd add your boxplots to the axes

# the following just cleans up each axes for readability
for tl in ax.get_xticklabels():
tl.set_visible(False)
for tl in ax.get_yticklabels():
tl.set_visible(False)
if ax.is_first_col():
tl.set_visible(True)
tl.set_fontsize(9)
f.add_subplot(ax)

f.savefig('nested_subplot.png')
我希望这有助于您入门。
编辑以包括图像:
enter image description here

关于matplotlib - matplotlib 中是否存在用于在子图中定义子图网格的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43849406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com