gpt4 book ai didi

python - 设置导航工具栏和拾取事件的顶级轴

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:44 24 4
gpt4 key购买 nike

如果我有一个共享的 y 轴和两个 x 轴,我如何指定要使用哪个轴?在我的情况下,我希望在工具栏中显示默认轴,例如创建的子图,并且不显示通过 twiny() 生成的第二个轴。这是一个最小的示例,您可以运行它来查看我的问题:

import matplotlib
matplotlib.use('TkAgg')

from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.backend_bases import key_press_handler
from matplotlib.figure import Figure
import Tkinter as Tk

root = Tk.Tk()
root.wm_title("Embedding in TK")


f = Figure(figsize=(5,4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)

a.plot(t,s)

y = a.twiny()

# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

toolbar = NavigationToolbar2TkAgg( canvas, root )
toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

Tk.mainloop()

如果你运行它,你会看到:enter image description here

当我希望程序使用其他轴时,右下角的坐标系使用twiny()轴。如何才能做到这一点?

检查docs对于 twiny 给出注释

For those who are ‘picking’ artists while using twiny, pick events are only called for the artists in the top-most axes

我意识到我需要将这些第一个轴设置为最上面的轴,我该怎么做?

最佳答案

这有点棘手。我认为您只需要使用 f.sca(a) 设置事件轴,但这似乎没有帮助,即哪个轴处于事件状态并不重要。您要做的就是设置两个子图的 zorder,并为“a”指定比“y”更高的 zorder。因此,如果您在创建两个轴对象后在任何位置添加这两行代码,我认为它应该可以工作:

a.set_zorder(1)
y.set_zorder(0)

关于python - 设置导航工具栏和拾取事件的顶级轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31656947/

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