Matplotlib图表技巧:如何在一个图中使用不同的纵坐标范围
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()
代码解释:
fig, ax1 = plt.subplots()创建一个图形和一个坐标轴对象ax1。ax2 = ax1.twinx()创建第二个坐标轴对象ax2,它与ax1共享x轴。ax1.plot()和ax2.plot()分别在两个y轴上绘制数据。set_xlabel()和set_ylabel()设置轴标签。color参数用于区分两个y轴。
调整标签位置
如果您的两个y轴的范围差异很大,则可能需要调整第二个y轴的标签位置,以避免重叠。您可以使用 ax.yaxis.set_label_coords() 方法来调整标签位置。
通过使用 twiny() 和 twinx() 函数,您可以轻松地在 Matplotlib 图表中使用不同的纵坐标范围,从而更清晰地呈现和比较您的数据。
原文地址: https://www.cveoy.top/t/topic/jkPR 著作权归作者所有。请勿转载和采集!