gpt4 book ai didi

python - 如何使 matplotlib mark_inset 在图表顶部显示线?

转载 作者:行者123 更新时间:2023-12-01 04:30:47 27 4
gpt4 key购买 nike

我有这个代码

ax = plt.subplot(222)
plt.plot(time_list, data[1], color='red')
plt.plot(time_list, y_offset, color='blue')
plt.axvline(x=0, color='black')
plt.axhline(y=0, color='black')

axins = zoomed_inset_axes(ax, 4.5, loc=4)
axins.plot(time_list, data[1], color='red')
axins.plot(time_list, y_offset, color='blue')
axins.axvline(x=0, color='black')
axins.axhline(y=0, color='black')
axins.axis([2, 3, -0.01, 0.01])
plt.yticks(visible=False)
plt.xticks(visible=False)
mark_inset(ax, axins, loc1=3, loc2=1, fc="none", ec="0.0")

绘制这样的图表

enter image description here

正如您所看到的,缩放框线位于红色图的后面,但链接线位于图的顶部,那么如何使缩放框线位于图的顶部?

最佳答案

您可以使用 Z-order 使该框出现在图形线的顶部。 。 Z 顺序较高的艺术家绘制在 Z 顺序较低的艺术家之上。默认行数为 2,因此将 zorder = 3 添加到 mark_inset

完整代码:

from matplotlib import pyplot as plt 
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes, mark_inset
fig, ax = plt.subplots()
time_list = np.linspace(0, 7, 1000)
data = np.random.random(1000) - .5
plt.plot(time_list, data, color='red')

plt.axvline(x=0, color='black')
plt.axhline(y=0, color='black')

axins = zoomed_inset_axes(ax, 4.5, loc=4)
axins.plot(time_list, data, color='red')
axins.axvline(x=0, color='black')
axins.axhline(y=0, color='black')
axins.axis([2, 3, -0.01, 0.01])
plt.yticks(visible=False)
plt.xticks(visible=False)
mark_inset(ax, axins, loc1=3, loc2=1, fc="none", ec="0.0", zorder = 3)
plt.show()

Graph with mark_inset box above plotted line

关于python - 如何使 matplotlib mark_inset 在图表顶部显示线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com