欢迎访问宙启技术站
智能推送

高阶数据可视化:使用Plotly和Python制作瀑布图

发布时间:2023-12-17 09:04:30

Plotly是一种强大的高阶数据可视化工具,它提供了丰富的可视化选项和交互功能。其中之一是瀑布图(Waterfall Chart),它适用于展示数据的变化和贡献。

瀑布图常用于展示某个指标在多个因素影响下的变化情况,例如展示销售额的变化,或者展示一个公司的收入和支出的变化。瀑布图可以直观地展示每个因素对总体变化的贡献,有助于分析并识别主要因素。

首先,我们需要安装所需的库,包括Plotly和Pandas。使用以下命令可以安装这两个库:

pip install plotly pandas

接下来,我们将使用一个简单的例子来演示如何制作瀑布图。我们假设我们有一个公司的月度收入和支出数据,我们想了解每个月的收入和支出对利润的影响。

假设我们有以下数据:

import pandas as pd

data = {'Month': ['January', 'February', 'March', 'April', 'May'],
        'Income': [1000, 1200, 1500, 1300, 1400],
        'Expense': [800, 900, 1000, 1100, 1200]}

df = pd.DataFrame(data)

首先,我们需要计算每个月的净收入(即收入减去支出)和累积净收入。我们可以通过以下代码来实现:

df['Net Income'] = df['Income'] - df['Expense']
df['Cumulative Net Income'] = df['Net Income'].cumsum()

接下来,我们可以使用Plotly来制作瀑布图。首先,我们需要导入plotly.graph_objs模块,并创建一个Figure对象:

import plotly.graph_objs as go

fig = go.Figure()

接下来,我们添加瀑布图中的不同部分,包括收入、支出和净收入。我们可以使用Bar对象来表示这些部分:

fig.add_trace(go.Bar(x=df['Month'], y=df['Income'], name='Income', marker_color='green'))
fig.add_trace(go.Bar(x=df['Month'], y=df['Expense'], name='Expense', marker_color='red'))
fig.add_trace(go.Bar(x=df['Month'], y=df['Net Income'], name='Net Income', marker_color='blue'))

然后,我们添加累积净收入的线条。我们可以使用Scatter对象来表示线条:

fig.add_trace(go.Scatter(x=df['Month'], y=df['Cumulative Net Income'], name='Cumulative Net Income', mode='lines+markers'))

最后,我们设置图表的标题和轴标签,并显示图表:

fig.update_layout(title='Monthly Income and Expense', xaxis_title='Month', yaxis_title='Amount')
fig.show()

运行完整的代码后,将显示一个瀑布图,包括收入、支出、净收入和累积净收入的变化。图表的标题为“Monthly Income and Expense”,x轴和y轴分别表示月份和金额。

使用Plotly和Python制作瀑布图非常简单,我们只需要导入所需的库、准备数据、创建图表对象并设置图表的外观。瀑布图能够直观地展示数据的变化和贡献,有助于分析和展示复杂的数据。你可以通过调整图表的样式和添加交互功能来满足具体的需求。