Matplotlib图表技巧:如何在一个图中使用不同的纵坐标范围

在数据可视化中,我们经常需要在一张图中比较具有不同范围的数据。Matplotlib 提供了一种简单的方法来实现这一点:使用两个y轴。

使用 twiny()twinx() 创建第二个轴

Matplotlib 中的 twiny()twinx() 函数允许您创建共享相同x轴或y轴的第二个轴。

**示例:**假设您有两个数据集,一个y轴范围为0到100,另一个范围为0到1000。以下代码演示了如何创建一个包含两个y轴的图表:

import matplotlib.pyplot as plt

# 创建数据
x = range(1, 11)
y1 = [i * 10 for i in x]
y2 = [i * 100 for i in x]

# 创建一个包含两个y轴的图
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()

# 绘制第一个y轴的数据
ax1.plot(x, y1, 'b-')
ax1.set_xlabel('x')
ax1.set_ylabel('y1', color='b')

# 绘制第二个y轴的数据
ax2.plot(x, y2, 'r-')
ax2.set_ylabel('y2', color='r')

plt.show()

代码解释:

  1. fig, ax1 = plt.subplots() 创建一个图形和一个坐标轴对象 ax1
  2. ax2 = ax1.twinx() 创建第二个坐标轴对象 ax2,它与 ax1 共享x轴。
  3. ax1.plot()ax2.plot() 分别在两个y轴上绘制数据。
  4. set_xlabel()set_ylabel() 设置轴标签。color 参数用于区分两个y轴。

调整标签位置

如果您的两个y轴的范围差异很大,则可能需要调整第二个y轴的标签位置,以避免重叠。您可以使用 ax.yaxis.set_label_coords() 方法来调整标签位置。

通过使用 twiny()twinx() 函数,您可以轻松地在 Matplotlib 图表中使用不同的纵坐标范围,从而更清晰地呈现和比较您的数据。

Matplotlib图表技巧:如何在一个图中使用不同的纵坐标范围

原文地址: https://www.cveoy.top/t/topic/jkPR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录