You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Tkinter中Matplotlib NavigationToolbar2Tk的坐标显示精度?

修改Matplotlib工具栏坐标显示的小数位数

要调整工具栏右侧显示的(x,y)坐标小数位数,最直接的方式是重写坐标轴的format_coord方法,自定义坐标文本的格式化规则:

实现步骤

  • 定义自定义坐标格式化函数,通过Python字符串格式化语法指定小数位数
  • 将该函数赋值给坐标轴对象的format_coord属性,替换默认逻辑

修改后的完整示例代码

from tkinter import Frame, Tk
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk

window_main = Tk()

matplotlib.use("TkAgg") # 设置Matplotlib后端
fig = plt.Figure()
# 创建承载图形的画布
canvas = FigureCanvasTkAgg(fig, window_main)
canvas.get_tk_widget().grid(column=0, row=0)
canvas.draw()
# 创建工具栏
toolbar_frame = Frame(window_main)
toolbar_frame.grid(column=0, row=1)
toolbar = NavigationToolbar2Tk(canvas, toolbar_frame)

ax = fig.add_subplot(111)

# 自定义坐标显示格式,这里设置为保留2位小数
def custom_format_coord(x, y):
    return f'x: {x:.2f}, y: {y:.2f}'

# 替换坐标轴默认的格式化方法
ax.format_coord = custom_format_coord

data_x = [1,2,3]
data_y = [2.5,4,1.2]

ax.plot(data_x,data_y)

fig.canvas.draw_idle()

window_main.mainloop()

格式调整说明

  • 代码中的:.2f表示保留2位小数,可按需修改::.3f对应3位小数,:.0f对应整数格式
  • 该方法会直接覆盖工具栏默认的坐标显示逻辑,鼠标悬停画布时将显示自定义格式的坐标文本

内容的提问来源于stack exchange,提问作者AlMa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:57:06