使用 twinx() 的辅助轴:添加到图例
考虑使用 twinx() 创建的具有两个 y 轴的图,其中为每个轴标记的线。然而,在使用 legend() 时,它仅显示一个轴的标签,不包括第二个轴的标签。本文旨在解决此问题并指导您向图例添加缺少的标签。
Twinx() 和图例
在提供的示例中,twinx()用于创建与主轴 (ax) 共享相同 x 轴(时间)的第二个 y 轴 (ax2)。尝试显示图例中的所有标签时,只有与 ax 相关的标签(Swdown 和 Rn)可见,而 ax2 (temp) 的标签不存在。
添加缺少的标签
要在图例中包含缺失的标签,有两种方法:
方法 1:多个图例
添加以下行以创建ax2 的单独图例:
<code class="python">ax2.legend(loc=0)</code>
这将为您提供两个图例,每个轴一个。
方法 2:合并图例
至将所有标签组合成一个图例,请按照以下步骤操作:
创建所有线条对象(来自两个轴的线条)的列表:
<code class="python">lns = lns1 + lns2 + lns3</code>
提取每行的标签:
<code class="python">labs = [l.get_label() for l in lns]</code>
使用图例函数将所有标签添加到 ax 上的单个图例中:
<code class="python">ax.legend(lns, labs, loc=0)</code>
示例
以下修改后的代码演示了如何使用方法 2 将临时标签添加到图例:
<code class="python"># ... (code as before) # Combine lines and labels lns = lns1 + lns2 + lns3 labs = [l.get_label() for l in lns] ax.legend(lns, labs, loc=0) # ... (remaining code)</code>
这将产生一个包含所有线路标签的图例:Swdown、Rn 和 temp。
以上是如何在 Twinx() 绘图图例中显示两个轴的标签?的详细内容。更多信息请关注PHP中文网其他相关文章!