Matplotlib 横坐标轴刻度格式设置:使用 FuncFormatter 和 Lambda 函数
以下代码用于设置横坐标轴刻度格式,现在我要为 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 函数更加灵活,可以方便地根据不同的需求进行调整。
原文地址: http://www.cveoy.top/t/topic/jXGl 著作权归作者所有。请勿转载和采集!