<ul>
<li>使用<code>.ravel</code>来展平<code>axes array</code>是相当常见的。
<ul>
<li>请参阅<a href="https://stackoverflow.com/a/64230180/7758804">answer</a>到这个<a href="https://stackoverflow.com/q/64229894/7758804">question</a>的<a href="https://stackoverflow.com/a/64230180/7758804">answer</a>以获得详细的解释</李>
</ul>
</li>
<li><code>math.ceil</code>将确保有足够的行,当要打印的项目数不能被列数平均整除时</李>
<li>该<code>for-loop</code>遍历枚举的<code>dict keys</code>,使用<code>idx</code>索引<code>ax_array</code>中的正确值,并使用<code>key</code>绘制每个数据帧</李>
<li><a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html" rel="nofollow noreferrer">^{<cd9>}</a>用于绘制数据帧</李>
</ul>
<pre class="lang-py prettyprint-override"><code>import pandas as pd
import numpy as np # for test data
import math
# test data
rows = 10
keys = sorted([1, 10, 20, 30, 40, 47, 100, 15, 25, 35, 45, 50, 5, 105, 55, 0])
df_dict = {key: pd.DataFrame({'a': np.random.randint(0, 10, size=(rows)), 'b': np.random.randint(15, 25, size=(rows)), 'Duration(Min)': np.random.randint(30, 40, size=(rows))}) for key in keys}
# determine number of rows, given the number of columns
cols = 4
rows = math.ceil(len(keys) / cols)
# create the figure with multiple axes
fig, axes = plt.subplots(nrows=rows, ncols=cols, figsize=(16, 16))
# convert the axes from a 4x4 array to a 16x1 array
ax_array = axes.ravel()
# iterate through the dataframe dictionary keys and use enumerate
for idx, key in enumerate(keys):
df_dict[key]['Duration(Min)'].plot(ax=ax_array[idx], ylabel='Value', title=f'DataFrame: {key}')
plt.tight_layout()
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/LeG2F.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LeG2F.png" alt="enter image description here"/></a></p>