Python Plotly.py:将轴单位强制为千(k)而不是百万(M)

Python Plotly.py:将轴单位强制为千(k)而不是百万(M),python,plot,plotly,data-visualization,plotly-python,Python,Plot,Plotly,Data Visualization,Plotly Python,由于x轴上的数字有点大,因此它们以百万为单位显示(即,25.8512M)。但是,我想强制格式以千为单位显示(即25851.2k) 导入plotly.graph\u对象 fig=go.Figure(数据=[go.Scatter(x=[25.851e6,25.852e6],y=[0,1])) 图2(图3) 根据本文和本文中的建议,我尝试将轴tickformat设置为,.6s',例如,但没有成功 有什么建议吗?看来没有办法实现你想要的(看看这个,要求将数十亿“B”格式化为数百万“M”) 我能想到的

由于x轴上的数字有点大,因此它们以百万为单位显示(即,25.8512M)。但是,我想强制格式以千为单位显示(即25851.2k

导入plotly.graph\u对象
fig=go.Figure(数据=[go.Scatter(x=[25.851e6,25.852e6],y=[0,1]))
图2(图3)

根据本文和本文中的建议,我尝试将轴
tickformat
设置为
,.6s'
,例如,但没有成功


有什么建议吗?

看来没有办法实现你想要的(看看这个,要求将数十亿“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()

似乎没有办法实现您想要的功能(请看这篇文章,要求将数十亿“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()

感谢您提供这一富有创意的解决方案!是的,我见过那条线。不幸的是,这将意味着在缩放和其他问题上失去分辨率。在我的例子中,我正在处理数千个数据点,所以从数字到因子的转换对我来说不是一个真正的选择。啊,我明白了。是的,我有一种感觉,这个解决方案是不可推广的,但如果我能想到什么,我会更新我的答案。如果你发现了什么,请也发布你的解决方案,因为我想知道这个问题是否有解决办法。祝你好运!感谢这个创造性的解决方案!是的,我见过那条线。不幸的是,这将意味着在缩放和其他问题上失去分辨率。在我的例子中,我正在处理数千个数据点,所以从数字到因子的转换对我来说不是一个真正的选择。啊,我明白了。是的,我有一种感觉,这个解决方案是不可推广的,但如果我能想到什么,我会更新我的答案。如果你发现了什么,请也发布你的解决方案,因为我想知道这个问题是否有解决办法。祝你好运!