<p>首先,分配<em>y1</em>和<em>y2</em>对象是不必要的,因为以后您将永远不会使用它们。另外,<code>legend=True</code>是默认值</p>
<ul>
<li><p>根据<a href="https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.subplots.html" rel="nofollow noreferrer">matplotlib.pyplot.subplots</a>文档,<code>ax</code>的返回为:</p>
<blockquote>
<p>ax : axes.Axes object or array of Axes objects</p>
</blockquote></li>
<li><p>对于<a href="https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.plot.html" rel="nofollow noreferrer">pandas.DataFrame.plot</a>,<code>ax</code>参数:</p>
<blockquote>
<p>ax : matplotlib axes object, default None</p>
</blockquote></li>
</ul>
<p>因此,首先要初始化轴对象数组(默认为一个项目<code>nrow=1</code>和<code>nrow=2</code>),然后根据图分配它/它们。现在,通常情况下,您将用<code>ax=ax</code>覆盖ax的赋值,但由于您使用了一个辅助y轴,因此相互重叠打印:</p>
<pre><code># INITIALIZE FIG DIMENSION AND AXES OBJECTS
fig, axs = plt.subplots(figsize=(8,4))
# ASSIGN AXES OBJECTS ACCORDINGLY
speeds_df.plot(ax=axs, x='datetime', y='down', grid=True, label="DL", linewidth=2, ylim=(100,225))
speeds_df.plot(ax=axs, x='datetime', y='up', secondary_y=True, label="UL", linewidth=2, ylim=(100,225))
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/wupVW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/wupVW.png" alt="Single Plot"/></a></p>
<hr/>
<p>要说明如何扩展轴对象,请参见下面的多个(非重叠)绘图</p>
<p>使用<code>nrows=2</code>的多个子批次示例:</p>
<pre><code># INITIALIZE FIG DIMENSION AND AXES OBJECTS
fig, axs = plt.subplots(nrows=2, figsize=(8,4))
# ASSIGN AXES OBJECTS WITH INDEXING AND NO Y LIMITS
speeds_df.plot(ax=axs[0], x='datetime', y='down', grid=True, label="DL", linewidth=2)
plt.subplots_adjust(hspace = 1)
speeds_df.plot(ax=axs[1], x='datetime', y='up', label="UL", linewidth=2)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/iOsVI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iOsVI.png" alt="two row subplots"/></a></p>
<hr/>
<p>使用<code>ncols=2</code>的多个绘图示例:</p>
<pre><code># INITIALIZE FIG DIMENSION AND AXES OBJECTS
fig, axs = plt.subplots(ncols=2, figsize=(12,4))
# ASSIGN AXES OBJECTS WITH INDEXING AND NO Y LIMITS
speeds_df.plot(ax=axs[0], x='datetime', y='down', grid=True, label="DL", linewidth=2)
speeds_df.plot(ax=axs[1], x='datetime', y='up', label="UL", linewidth=2)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/tbzyr.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tbzyr.png" alt="two column subplots"/></a></p>
<hr/>
<p>甚至可以在将日期/时间字段设置为索引后使用<code>subplots=True</code>:</p>
<pre><code># INITIALIZE FIG DIMENSION AND AXES OBJECTS
fig, axs = plt.subplots(figsize=(8,4))
# ASSIGN AXES OBJECT PLOTTING ALL COLUMNS
speeds_df.set_index('datetime').plot(ax=axs, subplots=True, grid=True, label="DL", linewidth=2)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/Q1c5E.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Q1c5E.png" alt="Pandas subplots output"/></a></p>