如何在 Matplotlib 中的第二 Y 轴上添加 Y 轴标签

Suraj Joshi 2024年2月15日
  1. 与轴对象直接交互
  2. 使用 DataFrame.plot 方法将 y 轴标签添加到辅助 y 轴
如何在 Matplotlib 中的第二 Y 轴上添加 Y 轴标签

我们可以直接与 axes 对象交互,或者使用 DataFrame.plot 方法在 Matplotlib 中的 y 轴辅助标签上添加 y 轴标签。

与轴对象直接交互

我们可以在 twinx() 函数的帮助下使用两个不同的 axes 对象来绘制带有两个不同 Y 轴的图。现在,我们可以使用第二个 axes 对象来绘制第二个 y 轴变量的图并更新其标签。

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(0, 5, 100)

y1 = np.sin(2 * np.pi * a)
y2 = np.cos(2 * np.pi * a)

fig, ax1 = plt.subplots()

ax1.set_xlabel("time (s)")
ax1.set_ylabel("sin", color="red")
ax1.plot(a, y1, color=color)
ax1.tick_params(axis="y", labelcolor=color)

ax2 = ax1.twinx()
ax2.set_ylabel("cos", color="green")
ax2.plot(a, y2, color=color)
ax2.tick_params(axis="y", labelcolor=color)

fig.tight_layout()
plt.show()

输出:

与轴直接交互以将 y 轴标签添加到第二 y 轴对象

ax2 = ax1.twinx()

Axes.twinx() 创建一个新的 Axes,其 Y 轴与原始轴相反,在本例中为 ax1

使用 DataFrame.plot 方法将 y 轴标签添加到辅助 y 轴

我们也可以使用 pandas 将 Y 轴标签添加到第二 Y 轴。当我们在 DataFrame.plot 方法中将 secondary_y 选项设置为 True 时,它将返回可用于设置标签的不同轴。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {
        "Age": [22, 12, 18, 25, 30],
        "Height": [155, 129, 138, 164, 145],
        "Weight": [60, 40, 45, 55, 60],
    }
)
ax = df.plot(kind="line", x="Age", y="Height", color="DarkBlue")

ax2 = df.plot(kind="line", x="Age", y="Weight", secondary_y=True, color="Red", ax=ax)

ax.set_ylabel("Height")
ax2.set_ylabel("Weight")
plt.tight_layout()
plt.show()

输出:

DataFrame.plot 方法,将 y 轴标签添加到第二 y 轴

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Matplotlib Axes