gpt4 book ai didi

python - 按行格式化 Plotly 表

转载 作者:行者123 更新时间:2023-12-05 05:43:28 25 4
gpt4 key购买 nike

我正在尝试使用 Plotly 和 SQL 创建可视化表

我已经设法提取所需格式的数据并使用 SQL 添加了摘要行。

但我需要将最后一行“Total”的格式设置为粗体和更大的字体。

是否可以在 jupyter 中使用 plotly?

fig = go.Figure(data=[go.Table(
header=dict(values=['<b>Product Group<b>','<b>Quantity Sold<b>', '<b>Sales<b>'],
fill_color='white',
align='center',
font_size = 15),
cells=dict(values=[PQS.ProductGroup, PQS.Quantity, PQS.Price],
fill_color='white',
align='center',
format=[None,",d",",d"],
suffix=[None, ' Units',' EGP'],
font_size=12,
))
])

fig.show()

Image from Plotly

试图达到与此相似的外观。

Image from Tableau Report

这张图片来自 Tableau,迁移的原因是通过 python 更容易实现自动化和报告

有没有办法在 Plotly 中复制这种格式?还是我应该使用另一个库?

最佳答案

我不认为 Plotly 可以格式化表格的各个行,因为您选择的列的所有行都被一次传递给 cells .

但是,一种解决方法是复制您的 DataFrame PQS (以便在需要时保留原始表格中的数字),将此新表格转换为对象或字符串类型,将所有格式更改应用于这些列(包括格式化带有小数和逗号的数字),然后添加html 标签 <b>...</b>在将这个新格式化的 PQS 副本传递给 go.Table 之前到最后一行.

例如:

import plotly.graph_objects as go
import pandas as pd

## reproduce your example with a similar dataframe
PQS = pd.DataFrame({
'ProductGroup': [None,'Beverages','Others','Pizzas','Trattoria','Total'],
'Quantity':[37,341,67,130,25,600],
'Price':[1530,10097,3810,18625,4110,38172]
})

PQS_formatted_strings = PQS.copy()

for col in ["Quantity","Price"]:
PQS_formatted_strings[col] = PQS_formatted_strings[col].map('{:,d}'.format)

PQS_formatted_strings["Quantity"] = PQS_formatted_strings["Quantity"] + ' Units'
PQS_formatted_strings["Price"] = PQS_formatted_strings["Price"] + ' EGP'

## add bold html tags to the last row
last_row = PQS_formatted_strings.iloc[-1,:].values
new_last_row = ['<b>' + entry + '</b>' for entry in last_row]
PQS_formatted_strings.iloc[-1,:] = new_last_row

fig = go.Figure(data=[go.Table(
header=dict(values=['<b>Product Group</b>','<b>Quantity Sold</b>', '<b>Sales</b>'],
fill_color='white',
align='center',
font_size = 15),
cells=dict(values=[PQS_formatted_strings.ProductGroup, PQS_formatted_strings.Quantity, PQS_formatted_strings.Price],
fill_color='white',
align='center',
font_size=12,
))
])

fig.show()

enter image description here

关于python - 按行格式化 Plotly 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71821851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com