【发布时间】:2020-05-06 01:39:44
【问题描述】:
在 plotly 中,有没有办法以十六进制格式显示给定轴的刻度,而不是一个大的科学数字?这对于绘制地址跟踪很有用
【问题讨论】:
在 plotly 中,有没有办法以十六进制格式显示给定轴的刻度,而不是一个大的科学数字?这对于绘制地址跟踪很有用
【问题讨论】:
你可以用[str(hex(elem)) for elem in [1000000, ..., 5000000]做到这一点
剧情:
需要注意的一些细节:
据我所知,您必须使用字符串类型的列表来获得所需的行为。 [1000000, 2000000, 3000000, 4000000, 5000000] 等值将默认显示为:
即使[str(hex(elem)) for elem in xVals] 也会发生这种情况。因此,您必须明确指示将刻度显示为字符串:
fig.update_xaxes(tickmode = 'array',
tickvals = xHex,
ticktext= xHex)
完整代码:
# imports
import plotly.express as px
import plotly.graph_objs as go
import pandas as pd
import numpy as np
import plotly.express as px
xVals = [1000000, 2000000, 3000000, 4000000, 5000000]
xHex = [str(hex(elem)) for elem in xVals]
fig = px.scatter(x=xHex, y=[0, 1, 4, 9, 16])
fig.show()
fig.update_xaxes(tickmode = 'array',
tickvals = xHex,
ticktext= xHex)
【讨论】:
xHex = [str(hex(int(elem))) for elem in np.linspace(xVals.min(), xVals.max(), nticks)]