python绘图之双轴图
双轴图(Twin Axes Plot)是一种特殊的图表形式,它在同一幅图中使用两个不同的y轴(通常是左右两侧各一个),但共享同一个x轴。这种图表的主要作用是展示两个具有不同量纲或不同数据范围的变量之间的关系,同时便于比较它们在相同x轴上的变化趋势。本节我们学习使用python绘制双轴图
# 导入必要的库
import matplotlib.pyplot as plt # 用于绘图
import numpy as np # 用于数值计算
# 生成随机数据
np.random.seed(0) # 设置随机种子以保证结果可复现
x = np.linspace(0, 10, 100) # 生成 0 到 10 之间的 100 个点作为 x 轴数据
y = np.random.rand(100) * 10 # 生成 0 到 10 之间的随机 y 值
# 创建图形和第一个轴
fig, ax1 = plt.subplots() # 创建一个图形对象和一个轴对象
# 第一个轴(蓝色)
color = 'tab:blue' # 定义第一个轴的颜色为蓝色
ax1.set_xlabel('X-axis') # 设置 x 轴标签
ax1.set_ylabel('Y1', color=color) # 设置 y1 轴标签并指定颜色
ax1.plot(x, y, color=color) # 绘制 y1 数据(蓝色曲线)
ax1.tick_params(axis='y', labelcolor=color) # 设置 y1 轴刻度颜色为蓝色
# 创建第二个轴(红色)
ax2 = ax1.twinx() # 创建共享 x 轴的第二个 y 轴
color = 'tab:red' # 定义第二个轴的颜色为红色
ax2.set_ylabel('Y2', color=color) # 设置 y2 轴标签并指定颜色
ax2.plot(x, y**2, color=color) # 绘制 y2 数据(y 的平方,红色曲线)
ax2.tick_params(axis='y', labelcolor=color) # 设置 y2 轴刻度颜色为红色
# 调整布局
fig.tight_layout() # 自动调整子图参数,避免标签重叠
# 显示图表
plt.show() # 显示最终的双轴图