[英]Using custom functions to format display of values in plotly
我正在编写一个小型网络应用程序,以显示游戏中某些物品随时间的价格。 价格是整数,但我想将其格式化为游戏币的显示方式。 这是我正在使用的功能。 它需要一个整数并返回一个字符串。
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值悬停文本。
随着plotly您可以使用指定y轴的刻度格式tickformat但似乎你只能指定预先确定的格式选项,并不能通过自己的自定义格式功能。
也可以使用指定自己的刻度值tickvals并更换这些值的文本ticktext 。 我可以指定自己的y值,然后使用函数对其进行格式设置并将其返回为我的刻度文本,但是随后我将不得不生成自己的y值刻度以适合我的数据。 我还没有找到任何可以生成适合您的数据的y tick值的优秀python脚本。
如何使用plotly显示以自己的函数格式化的y值?
您已经描述了要走的路。 为什么不获取绘图数据,提取最小值和最大值,使用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
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.