ax1.twinx()
是 Matplotlib 库中的一个函数,用于在同一个图中创建一个共享 x 轴但具有独立 y 轴的双 y 轴图表。这个函数非常适合用来在同一张图中绘制两组具有不同 y 轴度量的变量,使得它们可以共享 x 轴,但彼此之间有不同的 y 轴尺度。
ax1.twinx()
的作用
ax1.twinx()
创建一个新的 y 轴对象,它与现有的ax1
对象共享相同的 x 轴,但有自己独立的 y 轴。这两个 y 轴通常位于图表的左右两侧,左侧的 y 轴对应原始的ax1
,而右侧的 y 轴对应ax2
(ax1.twinx()
返回的对象)。
示例说明
-
基本用法:
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 轴,一个在左侧,另一个在右侧,分别对应不同的数据集
y1
和y2
。 ax1
是原始的轴对象,用于绘制y1
数据。ax2
是通过ax1.twinx()
创建的新轴对象,用于绘制y2
数据,并与ax1
共享相同的 x 轴。- 通过这种方式,你可以在同一个图中展示两组不同度量的数据,使其更容易比较。
- 我们创建了两个 y 轴,一个在左侧,另一个在右侧,分别对应不同的数据集
- 解释:
运行效果如下
- 双 y 轴的实用场景:
- 在分析金融数据时,你可能想在同一张图中展示某种商品的价格变化(左 y 轴)以及交易量的变化(右 y 轴)。
- 在气象数据中,你可能需要同时展示温度(左 y 轴)和降雨量(右 y 轴)的变化趋势。
总结
-
ax1.twinx()
是一个非常有用的函数,允许我们在同一张图表上展示两组具有不同 y 轴度量的变量。通过共享相同的 x 轴,这两组数据可以在相同的时间序列或相同的 x 轴范围内进行比较。 -
这种双 y 轴的图表在多维数据分析和可视化中非常有帮助,特别是在需要同时比较不同量纲的数据时。
笔者水平有限,若有不对的地方欢迎评论指正!