数据可视化-9. 瀑布图

        瀑布图(Waterfall Chart)是一种用于显示数据的增减变化过程的图表,通过柱状条的堆叠,将数据的变化过程以类似瀑布流水的形式直观地呈现出来,展示了一个初始值在经过一系列的增加或减少的中间运算(如收入的各项增减因素、成本的构成变化等)后如何达到最终值。

1. 瀑布图的构成

        瀑布图由一系列矩形柱连接线组成,通常包含以下几个要素:

  • 起始值:显示一个初始的数值,作为分析的起点。
  • 增量与减量:中间的柱子表示数值的增加或减少,通过不同颜色区分。
    • 增量柱子通常为绿色或上升方向。
    • 减量柱子通常为红色或下降方向。
  • 中间累计值:增减量之间用连接线表示当前的累计值。
  • 最终值:一个特殊的柱子,显示整个过程的结果。

2. 瀑布图的特点

  1. 动态过程的可视化:清晰地展示了从初始值到最终值的所有变化。
  2. 增减关系清晰:增量和减量直观分开,便于分析变化的来源。

3. 适用场景

        瀑布图常用于以下场景:

  • 财务分析:如显示公司收入从毛收入到净利润的各项增减。
  • 预算分解:如展示预算从整体分解到各部门的分配。
  • 业绩对比:如分析年度销售额的变化,包括增长因素和减少因素。
  • 项目分析:如描述项目资源投入与成果输出的变化过程。

4. 瀑布图局限性

        瀑布图也有其局限性:

  • 数据量限制:若阶段过多,图表可能显得拥挤、不易阅读。
  • 不适合复杂变化:当增减交替频繁时,难以清晰传达信息。
  • 对比性不足:不适合多个维度的比较。

5. 瀑布图代码实现

5.1 Python 代码

        Dash 是一个非常好用的模块!!!

import dash
from dash import html, dcc
import plotly.graph_objects as go
import dash_bootstrap_components as dbc
import numpy as np


def create_advanced_charts():
    """
    创建高级图表示例
    返回一个包含多个图表的列表
    """
    # 3. 瀑布图
    waterfall_x = ['初始值', '收入', '支出', '税费', '最终值']
    waterfall_y = [0, 100, -30, -20, 0]
    waterfall_fig = go.Figure(go.Waterfall(
        name="瀑布图",
        orientation="v",
        measure=["absolute", "relative", "relative", "relative", "total"],
        x=waterfall_x,
        textposition="outside",
        text=["+0", "+100", "-30", "-20", "50"],
        y=waterfall_y,
        connector={"line": {"color": "rgb(63, 63, 63)"}},
    ))
    waterfall_fig.update_layout(
        title='瀑布图示例',
        showlegend=True,
        template='plotly_white'
    )
    return(waterfall_fig)


app = dash.Dash(__name__)

app.layout = html.Div([
    html.H3("高级图表展示", className="text-center mt-4 mb-3"),
    dcc.Graph(figure=create_advanced_charts())
])


if __name__ == "__main__":
    app.run_server(debug=True, port=8051)
5.2 瀑布图效果(网页展示)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值