繁体   English   中英

使用自定义函数格式化显示值的格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM