问题描述
由于我的x轴上的数字较大,因此以百万为单位显示(即 25.8512M )。但是,我想强制将格式改为显示成几千种(即 25,851.2k )。
import plotly.graph_objects as go
fig = go.Figure(data = [go.Scatter(x = [25.851e6,25.852e6],y = [0,1])])
fig.show()
例如,按照此SO question和此d-3 format API reference中的建议,我尝试将轴tickformat
设置为',.6s'
,但是没有运气。
有什么建议吗?
解决方法
似乎无法在Plotly中完成所需的操作(请看此similar question,要求将数十亿个“ B”格式化为数百万个“ M”)
我能想到的最好的解决方案是将您的数据从数百万转换为数千,添加字母“ k”,并将此字符串列表用作tickvalues
。不太优雅,但希望它能实现您想要的。
import plotly.graph_objects as go
vals_in_millions = [25.851e6,25.852e6]
fig = go.Figure(data = [go.Scatter(x = vals_in_millions,y = [0,1])])
def convert_million_to_thousands(values):
return [str(num/1000)+'k' for num in values]
fig.update_layout(
xaxis = dict(
tickmode = 'array',tickvals = vals_in_millions,ticktext = convert_million_to_thousands(vals_in_millions)
)
)
fig.show()