自动调整 Matplotlib 中的 ylim 和 xlim

自动调整 Matplotlib 中的 ylim 和 xlim

参考: Automatically Rescale ylim and xlim in Matplotlib

在使用 Matplotlib 进行数据可视化时,经常需要调整图表的 x 轴和 y 轴的显示范围,以更好地展示数据的特点。Matplotlib 提供了多种方式来自动或手动调整轴界限(xlim 和 ylim)。本文将详细介绍如何在 Matplotlib 中自动调整这些轴界限,并提供多个示例代码,帮助读者更有效地使用这些功能。

1. 自动调整轴界限的基本概念

在 Matplotlib 中,轴界限可以通过 set_xlim()set_ylim() 方法手动设置,也可以通过一些自动化的方法来调整。自动调整轴界限意味着根据数据的范围自动设置轴的显示范围,使得图表的显示既不会过于拥挤也不会有太多的空白区域。

示例代码 1:基本的自动调整

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图形
plt.figure()
plt.plot(x, y, label='sin(x) from how2matplotlib.com')
plt.autoscale(enable=True, axis='both', tight=None)
plt.legend()
plt.show()

Output:

自动调整 Matplotlib 中的 ylim 和 xlim

2. 使用 autoscale 方法

autoscale 方法是一个非常方便的功能,它可以根据图中的内容自动调整轴的界限。你可以选择只对 x 轴、只对 y 轴或两者同时进行调整。

示例代码 2:只自动调整 x 轴

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x) * 10

# 创建图形
plt.figure()
plt.plot(x, y, label='10 * sin(x) from how2matplotlib.com')
plt.autoscale(enable=True, axis='x', tight=True)
plt.legend()
plt.show()

Output:

自动调整 Matplotlib 中的 ylim 和 xlim

示例代码 3:只自动调整 y 轴

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.cos(x)

# 创建图形
plt.figure()
plt.plot(x, y, label='cos(x) from how2matplotlib.com')
plt.autoscale(enable=True, axis='y', tight=True)
plt.legend()
plt.show()

Output:

自动调整 Matplotlib 中的 ylim 和 xlim

3. 使用 relimautoscale_view 方法

当你在已有的图形上添加更多的数据点时,可能需要重新计算图形的界限。relim 方法用于更新轴对象的数据界限,而 autoscale_view 根据更新后的数据界限调整轴的视图界限。

示例代码 4:添加数据后重新调整界限

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
y2 = np.cos(x)

# 创建图形
plt.figure()
plt.plot(x, y, label='sin(x) from how2matplotlib.com')
plt.plot(x, y2, label='cos(x) from how2matplotlib.com')
plt.legend()

# 添加数据后重新调整界限
plt.gca().relim()
plt.gca().autoscale_view()

plt.show()

Output:

自动调整 Matplotlib 中的 ylim 和 xlim

4. 调整轴界限的高级技巧

有时候,自动调整的界限可能不完全符合我们的需求,这时可以结合手动设置和自动调整的方法来达到最佳的显示效果。

示例代码 5:结合手动设置和自动调整

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x) * 100

# 创建图形
plt.figure()
plt.plot(x, y, label='100 * sin(x) from how2matplotlib.com')
plt.autoscale(enable=True, axis='both', tight=True)

# 手动调整 y 轴的界限
plt.ylim(-120, 120)

plt.legend()
plt.show()

Output:

自动调整 Matplotlib 中的 ylim 和 xlim

5. 总结

在本文中,我们详细介绍了如何在 Matplotlib 中自动调整 xlim 和 ylim。通过使用 autoscale, relim, 和 autoscale_view 方法,我们可以根据数据的实际分布自动调整图形的显示范围。这些方法提供了灵活的数据可视化工具,可以帮助我们更有效地展示复杂的数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程