Matplotlib 的 inset_locator 轴倒置
Matplotlib's inset_locator with inverted axes
我想在我的情节中制作一个标准插图。但我不知道如何使用 inset_locator
。
这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, mark_inset
x = np.linspace(0, 2)
plt.plot(x, np.sin(x))
ax = plt.gca()
ax.invert_yaxis()
axins = inset_axes(ax, width='40%', height='30%', loc='lower left')
x_in = np.linspace(1.25, 1.75)
axins.plot(x_in, np.sin(x_in))
axins.invert_yaxis()
mark_inset(ax, axins, loc1=2, loc2=4)
plt.show()
结果是:
显然它的边缘连接错误的角。当我的轴从最大值变为最小值时,我如何使它们正确?
不幸的是,mark_inset
无法处理倒轴。所以你需要手动设置连接器的位置。
patch, pp1,pp2 = mark_inset(ax, axins, loc1=1,loc2=1)
pp1.loc1 = 1
pp1.loc2 = 4
pp2.loc1 = 4
pp2.loc2 = 1
我想在我的情节中制作一个标准插图。但我不知道如何使用 inset_locator
。
这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, mark_inset
x = np.linspace(0, 2)
plt.plot(x, np.sin(x))
ax = plt.gca()
ax.invert_yaxis()
axins = inset_axes(ax, width='40%', height='30%', loc='lower left')
x_in = np.linspace(1.25, 1.75)
axins.plot(x_in, np.sin(x_in))
axins.invert_yaxis()
mark_inset(ax, axins, loc1=2, loc2=4)
plt.show()
结果是:
显然它的边缘连接错误的角。当我的轴从最大值变为最小值时,我如何使它们正确?
不幸的是,mark_inset
无法处理倒轴。所以你需要手动设置连接器的位置。
patch, pp1,pp2 = mark_inset(ax, axins, loc1=1,loc2=1)
pp1.loc1 = 1
pp1.loc2 = 4
pp2.loc1 = 4
pp2.loc2 = 1