Matplotlib中twinx() 函数的用法

ax1.twinx() 是 Matplotlib 库中的一个函数,用于在同一个图中创建一个共享 x 轴但具有独立 y 轴的双 y 轴图表。这个函数非常适合用来在同一张图中绘制两组具有不同 y 轴度量的变量,使得它们可以共享 x 轴,但彼此之间有不同的 y 轴尺度。

ax1.twinx() 的作用

  • ax1.twinx() 创建一个新的 y 轴对象,它与现有的 ax1 对象共享相同的 x 轴,但有自己独立的 y 轴。这两个 y 轴通常位于图表的左右两侧,左侧的 y 轴对应原始的 ax1,而右侧的 y 轴对应 ax2ax1.twinx() 返回的对象)。

示例说明

  1. 基本用法

    import matplotlib.pyplot as plt
    
    # 创建数据
    x = [0, 1, 2, 3, 4]
    y1 = [0, 1, 4, 9, 16]  # 这是左侧 y 轴对应的数据
    y2 = [0, 1, 2, 3, 4]   # 这是右侧 y 轴对应的数据
    
    # 创建图形和第一个轴
    fig, ax1 = plt.subplots()
    
    ax1.plot(x, y1, 'g-')  # 绘制 y1 数据,使用绿色线条
    ax1.set_xlabel('X data')  # 设置 x 轴标签
    ax1.set_ylabel('Y1 data', color='g')  # 设置左侧 y 轴标签和颜色
    ax1.tick_params(axis='y', labelcolor='g')  # 设置左侧 y 轴刻度的颜色
    
    # 创建共享 x 轴的第二个 y 轴
    ax2 = ax1.twinx()
    ax2.plot(x, y2, 'b-')  # 绘制 y2 数据,使用蓝色线条
    ax2.set_ylabel('Y2 data', color='b')  # 设置右侧 y 轴标签和颜色
    ax2.tick_params(axis='y', labelcolor='b')  # 设置右侧 y 轴刻度的颜色
    
    plt.show()
    
    • 解释
      • 我们创建了两个 y 轴,一个在左侧,另一个在右侧,分别对应不同的数据集 y1y2
      • ax1 是原始的轴对象,用于绘制 y1 数据。
      • ax2 是通过 ax1.twinx() 创建的新轴对象,用于绘制 y2 数据,并与 ax1 共享相同的 x 轴。
      • 通过这种方式,你可以在同一个图中展示两组不同度量的数据,使其更容易比较。

运行效果如下
在这里插入图片描述

  1. 双 y 轴的实用场景
    • 在分析金融数据时,你可能想在同一张图中展示某种商品的价格变化(左 y 轴)以及交易量的变化(右 y 轴)。
    • 在气象数据中,你可能需要同时展示温度(左 y 轴)和降雨量(右 y 轴)的变化趋势。

总结

  • ax1.twinx() 是一个非常有用的函数,允许我们在同一张图表上展示两组具有不同 y 轴度量的变量。通过共享相同的 x 轴,这两组数据可以在相同的时间序列或相同的 x 轴范围内进行比较。

  • 这种双 y 轴的图表在多维数据分析和可视化中非常有帮助,特别是在需要同时比较不同量纲的数据时。

笔者水平有限,若有不对的地方欢迎评论指正!

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥猪猪爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值