<p>您需要决定是使用pyplot还是在tk中嵌入matplotlib。下面假设您想要嵌入(在这种情况下,不要使用pyplot!!)。在</p>
<h3>使用mplcursors</h3>
<p><a href="https://mplcursors.readthedocs.io/en/stable/#customization" rel="nofollow noreferrer">mplcursors documentation</a>解释了如何自定义输出。本质上它包括连接到一个名为<code>"add"</code>的事件。在</p>
<pre><code>import numpy as np
import matplotlib
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import tkinter as tk
import mplcursors
root = tk.Tk()
root.geometry("1270x590")
mapArr=np.array(([113,62,31,63],
[50,101,72,47],
[92,10,40,12],
[83,21,128,16]))
xy=(['A','B','C','D','E','F'])
fig = matplotlib.figure.Figure()
ax = fig.add_subplot()
heatmap = ax.imshow(mapArr,cmap="gray",interpolation='nearest',vmin=0, vmax=128)
cb = fig.colorbar(heatmap)
canvas = FigureCanvasTkAgg(fig, root)
canvas.get_tk_widget().place(x=60,y=60)
cursor = mplcursors.cursor(heatmap, hover=True)
@cursor.connect("add")
def on_add(sel):
i,j = sel.target.index
sel.annotation.set_text(mapArr[i,j])
tk.mainloop()
</code></pre>
<h2>手动固定悬停框</h2>
<p>您可以不使用mplcursor来执行上述操作。这可以通过创建注释并根据鼠标位置更改其位置和文本来完成。在</p>
^{pr2}$