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

问题描述

由于我的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()

enter image description here

例如,按照此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()

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...