今天,我将向您展示一种在 python 中可视化数据的独特、通用且有用的方法。


桑基图是一种出色但经常被忽视的重要数据可视化方法,例如:资源管理和使用、收入和投资等财务数据、时间管理和分配、费用等等!


例如,让我们以一家 SaaS 公司(我们称之为 DatavizWRLD.com)为例,CEO Josh 想查看该公司的月收入、利润、支出和资金管理情况。我们可以给他一个简单的方法,用桑基图来可视化所有这些:

[桑基图](https://res.cloudinary.com/practicaldev/image/fetch/s--nc0ovBjx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/o2mh5kw3agesxcst12v3.png)

[桑基图悬停](https://res.cloudinary.com/practicaldev/image/fetch/s--YHcdaNhB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/00143s1w2ks8jr5vrpll.png)

[桑基图悬停2](https://res.cloudinary.com/practicaldev/image/fetch/s--HWcfjEUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/3hz2hcgeq41xvrx3usn6.png)


如您所见,此桑基图为 Josh 提供了一种简单有效的方式来可视化其公司的月收入、利润、支出和资金管理。


建立自己的!

如果您只想要代码,瞧(尽管我建议您坚持解释,因为从一开始可能很难理解):_

import plotly.graph_objects as go

fig = go.Figure(data=[go.Sankey(
    node = dict(
    thickness = 5,
    label = ["Ads", "Net profit", "Total income", "ROI", "Paid services", "Investment", "Expenses", "Maintaining website", "Paying employes", "Advertising", "Personal expenses", "Savings"],
    color = "cyan"
    ),
    link = dict(

    # indices correspond to labels
    source = [0, 1, 4, 2, 3, 2, 6, 6, 6, 1, 1],
    target = [2, 5, 2, 1, 2, 6, 7, 8, 9, 10, 11],
    value = [60000, 40000, 90000, 100000, 10000, 60000, 10000, 30000, 20000, 20000, 40000]
))])

fig.update_layout(
    title="DatavizWRLD.com monthly income and income management of 2021( in USD )",
    font=dict(size = 12, color = 'black')
)

fig.show()

进入全屏模式 退出全屏模式

让我们理解这一切

  • 首先,我们将“plotly.graph_objects”导入为“go”。

  • 定义“fig”,这将是我们的桑基图。

  • 用厚度、颜色和标签来表征我们桑基图的各个部分。

  • 接下来,我们定义标签连接或断开连接的方式和位置,以及每个标签的值。 (“源”和“目标”上的数字是标签数组的索引)。

  • 最后,我们给图表命名为黑色,大小为 12。


就是这样,一种在 python 中可视化数据的伟大而通用但被低估的方式。


再见👋

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐