我正在编写一个小型网络应用程序来显示游戏中某些项目的价格。价格是整数,但我想将它们格式化为游戏币的显示方式。这是我正在使用的功能。它需要一个整数并返回一个字符串。
def copper_to_price(copper): # Converts copper int to a normal price
copper = int(copper)
s, c = divmod(copper, 100)
g, s = divmod(s, 100)
if g == 0:
if s == 0:
return '{}c'.format(c)
else:
return '{}s{}c'.format(s, c)
else:
return '{}g{}s{}c'.format(g, s, c)
我正在用剧情绘制这些价格,并且想要使用我的函数格式化y轴刻度和y值悬停文本。
使用tickformat,您可以使用tickvals指定y轴刻度格式化程序,但似乎您只能指定预定义的格式设置选项,并且无法传递您自己的自定义格式设置功能。</ p>
也可以使用ticktext指定自己的刻度值,并将这些值的文本替换为{{3}}。我可以指定自己的y值,然后使用我的函数对其进行格式化并将其作为我的ticktext返回,但之后我必须生成适合我的数据的自己的y值滴答。我还没有找到任何能够生成适合您数据的y tick值的好的python脚本。
如何使用plotly显示使用我自己的函数格式化的y值?
答案 0 :(得分:0)
你已经描述了要走的路。为什么不采用绘图数据,提取最小值和最大值,使用tv = np.arrange(min, max, 0.25)
创建tickvals
序列,然后使用ticktext = [copper_to_price(member) for member in tv]
对其进行格式化。完成后,只需设置相应的布局选项
layout = go.Layout(
yaxis=dict(
tickmode='array',
tickvals=tv,
ticktext=tt
)
)