欢迎访问宙启技术站
智能推送

使用zoomed_inset_axes()函数实现图表中的规定放大区域

发布时间:2024-01-14 14:28:07

在绘制图表时,有时我们需要对某个特定区域进行放大显示,以便更清晰地观察其中的细节。使用zoomed_inset_axes()函数可以实现这一功能。下面是一个使用例子,具体步骤如下:

首先,导入需要的库和模块:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes, mark_inset

接下来,生成数据和绘制图表:

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

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

然后,创建一个放大区域的Axes对象:

axins = zoomed_inset_axes(ax, zoom=2, loc=1)

这里的参数zoom表示放大倍数,loc表示放大区域的位置,1表示右上角。

绘制放大区域的曲线:

axins.plot(x, y)

接下来,设置放大区域的坐标轴刻度和标签:

axins.set_xlim(0.2, 0.3)
axins.set_ylim(0.8, 1)

然后,添加放大区域的标记和连接线:

mark_inset(ax, axins, loc1=2, loc2=4, fc="none", ec="0.5")

这里的参数loc1loc2分别表示连接线的起点和终点的位置。

最后,绘制图表和放大区域的图表:

plt.xticks(visible=False)
plt.yticks(visible=False)
plt.show()

完整代码如下:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes, mark_inset

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

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

axins = zoomed_inset_axes(ax, zoom=2, loc=1)
axins.plot(x, y)

axins.set_xlim(0.2, 0.3)
axins.set_ylim(0.8, 1)

mark_inset(ax, axins, loc1=2, loc2=4, fc="none", ec="0.5")

plt.xticks(visible=False)
plt.yticks(visible=False)
plt.show()

运行代码,就可以看到原始图表和放大区域的图表。

使用zoomed_inset_axes()函数可以很方便地实现图表中的规定放大区域,使我们可以更清晰地观察特定区域的细节,提高图表的可读性。