📜  matplotlib savefig 截断图 - Python (1)

📅  最后修改于: 2023-12-03 14:44:12.199000             🧑  作者: Mango

Matplotlib savefig 截断图 - Python

在 Matplotlib 中,savefig() 函数可以用来保存图形,但默认情况下会将整个图形保存下来。有时候我们需要将某个区域的图像保存下来,这时就需要使用到截断图。

如何实现截断图?

我们需要使用到 Axes.set_ylimAxes.get_ylim 来限制 Y 轴范围,而 X 轴范围则可以通过 Axes.set_xlimAxes.get_xlim 来实现。

下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

ax.set_ylim(-0.5, 0.5)
ax.set_xlim(2, 8)

plt.savefig("truncated.png")

这里我们生成一个正弦曲线,然后设置 Y 轴的范围为 -0.50.5,以及 X 轴的范围为 28。最后保存为 truncated.png

怎么样才能让截断图更有用?

有时候我们需要将 Y 轴的范围自适应,只显示我们需要的部分。这时我们可以使用到 Axes.autoscaleAxes.relim 函数。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots()
ax.plot(x, y)

ax.relim()
ax.autoscale(axis='y', tight=True)
ax.set_xlim(2, 8)

plt.savefig("truncated2.png")

这里我们先使用 Axes.relim() 函数重新归一化数据范围,然后使用 Axes.autoscale() 函数来根据数据自动调整 Y 轴范围,然后再设置 X 轴的范围为 28。最后保存为 truncated2.png

总结

截断图在需要突出某个部分的数据时非常有用。在 Matplotlib 中实现截断图也非常简单,只需要设置 Y 轴的范围,然后保存即可。如果需要自适应 Y 轴范围,可以使用 Axes.autoscale()Axes.relim() 函数。