首页 > 后端开发 > Python教程 > 如何在 Twinx() 绘图图例中显示两个轴的标签?

如何在 Twinx() 绘图图例中显示两个轴的标签?

Patricia Arquette
发布: 2024-11-03 07:38:02
原创
869 人浏览过

How to Display Labels for Both Axes in a Twinx() Plot Legend?

使用 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:合并图例

至将所有标签组合成一个图例,请按照以下步骤操作:

  1. 创建所有线条对象(来自两个轴的线条)的列表:

    <code class="python">lns = lns1 + lns2 + lns3</code>
    登录后复制
  2. 提取每行的标签:

    <code class="python">labs = [l.get_label() for l in lns]</code>
    登录后复制
  3. 使用图例函数将所有标签添加到 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板