Как указать тип данных в таблице plotly?

#python #plotly

Вопрос:

Я создал таблицу с помощью plotly, которая содержит смешанные типы значений, например, текст, число и процент. Таблица, которую я создал, выглядит так: введите описание изображения здесь

как вы можете видеть, некоторые числа имеют очень большие десятичные разряды, или некоторые числа (например, столбец PLF) не представлены в процентах. Как я могу указать формат для этих чисел в plotly? моя попытка:

 import plotly.graph_objs as go
fig = go.Figure(data=[go.Table(header=dict(values=['<b>Source</b>', '<b>Installed Capacity (MW)</b>',
                                                       '<b>Optimum Capacities(MW)</b>', '<b>Generation Units (MWh)</b>',
                                                       '<b>PLF (%)</b>', '<b>Generation Share (%)</b>',
                                                       '<b>Annual Generation (MU)</b>']),
                                   cells=dict(values=[list(installCapacities.keys()), list(installCapacities.values()),
                                                      list(optimumCapacities.values()), list(generationUnits.values()),
                                                      list(plf.values()), list(generationShare.values()),
                                                      list(annualGeneration.values())],
                                              align='center', format=['text', 'number', 'number', 'number', 'percentage',
                                                                      'percentage', 'number']))
                          ])
 

значения взяты из разных словарей, и их вычисление очень сложное , поэтому я не упомянул об этом здесь, я просто хочу знать, как я могу указать их тип данных, например text , number или percentage ?

Ответ №1:

Согласно документации, вы указываете формат в D3 3.x API. Например, строка .2% будет форматировать ваше число в процентах с двумя цифрами после запятой.

Вот пример:

 import plotly.graph_objects as go

fig = go.Figure(data=[go.Table(
    header=dict(values=["perc","number","text"]),
    cells=dict(values=[["0.111111","0.2333","0.92"],["123","456","789"],["1234text","1234","text"]],
    align="center", format=[".2%","g",""]))]
)
fig.show()
 

введите описание изображения здесь