以下代码用于设置横坐标轴刻度格式,现在我要为 format_sec() 函数增加一个参数 tick,默认为 1000,请帮我修改一下 sec_formatter = ticker.FuncFormatter(format_sec)

def format_sec(x, tick=1000):
    if tick==1000:#1000ns=1ms
        t='{:.1f}'.format(x/1000)#
    elif tick==100:#100ns
        t='{:.1f}'.format(x/10000)    
    return t
sec_formatter = ticker.FuncFormatter(format_sec)#请修改此句
plt.gca().xaxis.set_major_formatter(sec_formatter)

以下是修改后的代码:

def format_sec(x, tick=1000):
    if tick==1000:#1000ns=1ms
        t='{:.1f}'.format(x/1000)#
    elif tick==100:#100ns
        t='{:.1f}'.format(x/10000)    
    return t

tick = 1000 # 默认刻度为 1000
sec_formatter = ticker.FuncFormatter(lambda x, pos: format_sec(x, tick)) # 增加一个lambda函数,将tick作为参数传递给format_sec函数
plt.gca().xaxis.set_major_formatter(sec_formatter)

修改后的代码使用了一个 lambda 函数,将 tick 作为参数传递给 format_sec 函数,从而动态调整刻度显示。这种方法比直接修改 format_sec 函数更加灵活,可以方便地根据不同的需求进行调整。

Matplotlib 横坐标轴刻度格式设置:使用 FuncFormatter 和 Lambda 函数

原文地址: http://www.cveoy.top/t/topic/jXGl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录