如何在 Plotly 中为瀑布图添加总值列

Posted

技术标签:

【中文标题】如何在 Plotly 中为瀑布图添加总值列【英文标题】:How to add a total value column for a Waterfall Chart in Plotly 【发布时间】:2021-12-17 21:39:21 【问题描述】:

我正在尝试在我的瀑布图中添加一个“总值”列,但我不是为什么我不能这样做,因为这些数据在我的表中。查看我的实际表格:

DealID    Customer     deal value (USD)      Measure
Q1        SIEMENS AG     $1.200.000         Relative
Q2        SIEMENS AG     $800.000           Relative
Q3        SIEMENS AG     $2.100.000         Relative
Q4        SIEMENS AG     $450.000           Relative
Q5        SIEMENS AG     $1.000.000         Relative
Q6        SIEMENS AG     $300.000           Relative
TOTAL     SIEMENS AG     $5.850.000          Total 

这是用于创建瀑布图的代码:

import pandas as pd
import numpy as np
import plotly
import plotly.graph_objs as go

df=pd.read_excel('C:/Users/Usuario/Desktop/python/HP/waterfall.xlsx')

#store values in different variables

x=df['DealID']
y=df['deal value (USD)']
measure = df['Measure']
text=df['deal value (USD)']

fig = go.Figure(go.Waterfall(
    measure=measure,
    x=x,
    y=y,
    text=text

))

fig.show()

输出如下:

如您所见,总列上升,因为它是一个常规的“相对”度量,但我期待的是一个名为“总”的结尾列中所有 Q 的总和。

关于如何解决此问题的任何建议?

提前致谢

【问题讨论】:

【参考方案1】:

查看documentation,我认为go.Waterfallmeasure 参数需要'relative', 'absolute', or 'total',全部小写。

我导入了您的 DataFrame 并运行了您的代码,并进行了以下更改以使您的 "Measure" 列小写:

df["Measure"] = df["Measure"].str.lower()

然后我得到预期的输出:

【讨论】:

你好@Derek!非常感谢您的回答。当然,你的答案是正确的。 不客气,@daniel.hillow!很高兴我的回答有帮助

以上是关于如何在 Plotly 中为瀑布图添加总值列的主要内容,如果未能解决你的问题,请参考以下文章

在 plotly 中为每个条形图添加两个文本

如何在 python 中为 plotly boxplot 添加标签?

Python将瀑布图转换为plotly

如何使用 Plotly 在 Python 中使用 Pandas 数据框列设置散点图悬停信息

在plotly python中为折线图的不同部分添加文本

如何在 r 中的可反应表的页脚(包含每列的总值)中添加分隔符?