您可以覆盖
ax.format_coord
具有自定义格式化程序功能,如中所述
this documentation
。这是一个工作示例:
from tkinter import Frame, Tk
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
def custom_format_coord(x: float, y: float) -> str:
return f'x is {x:1.5f}, y is {y:1.5f}' # format however you want!
window_main = Tk()
matplotlib.use("TkAgg") # Set matplotlib backend
fig = plt.Figure()
# Create canvas to hold figure
canvas = FigureCanvasTkAgg(fig, window_main)
canvas.get_tk_widget().grid(column=0, row=0)
canvas.draw()
# Create toolbar
toolbar_frame = Frame(window_main)
toolbar_frame.grid(column=0, row=1)
toolbar = NavigationToolbar2Tk(canvas, toolbar_frame)
ax = fig.add_subplot(111)
data_x = [1,2,3]
data_y = [2.5,4,1.2]
ax.plot(data_x,data_y)
# use the custom coordinate formatter to override ax.format_coord
ax.format_coord = custom_format_coord
fig.canvas.draw_idle()
window_main.mainloop()
您的自定义坐标格式化函数需要接受两个
float
值,
x
和
y
,因为这些是自动传递的。