【发布时间】:2019-04-10 13:52:59
【问题描述】:
def y_ticks(y, pos):
decades = [1e9, 1e6, 1e3, 1e0 ]
suffix = ['B', 'M', 'K', '']
if y == 0:
return str(0)
for i, d in enumerate(decades):
if np.abs(y) >=d:
val = y/float(d)
signf = len(str(val).split('.')[1])
if signf == 0:
return '{val:d} {suffix}'.format(val=int(val), suffix=suffix[i])
else:
if signf == 1:
if str(val).split('.')[1] == '0':
return '{val:d} {suffix}'.format(val=int(round(val)), suffix=suffix[i])
tx = '{'+'val:.{signf}f'.format(signf = signf) +'} {suffix}'
return tx.format(val=val, suffix=suffix[i])
return y
我想用简单的方式编写这个函数,它变得复杂理解。我是 python 新手,有人可以帮我写这个。这样做的目的是动态改变 y 刻度
例如:1000000 -> 1M, 1000000000 ->1B
【问题讨论】:
标签: python python-3.x python-2.7 function matplotlib