📜  如何在Python中使用 Plotly 创建堆积面积图?(1)

📅  最后修改于: 2023-12-03 15:08:56.615000             🧑  作者: Mango

如何在Python中使用Plotly创建堆叠面积图?

简介

Plotly是一个流行的开源Python库,用于创建交互式可视化。它支持许多类型的图表,包括堆叠面积图。堆叠面积图可用于比较几个分类变量在某段时间内的总体趋势,以及变量之间的相对贡献。

在本文中,我们将介绍如何使用Python中的Plotly库创建堆叠面积图。我们将使用美国各州2017年交通事故的数据集作为例子。

准备工作

在开始之前,你需要确保已经安装了Plotly和Pandas库。可以使用以下命令来安装它们:

!pip install plotly
!pip install pandas

如果你使用的是anaconda环境,可以使用以下命令:

conda install plotly
conda install pandas
数据准备

首先,我们需要加载数据。在本例中,我们将使用来自kaggle的美国各州2017年交通事故数据集。你可以从kaggle下载该数据集。

import pandas as pd

df = pd.read_csv('US_Accidents_Dec20_Updated.csv')

接下来,我们需要对数据进行预处理。在本例中,我们将只保留四个州的行驶距离和逐小时的事故数量。我们将使用Pandas库进行数据处理。

df = df[(df['State'] == 'CA') | (df['State'] == 'TX') | (df['State'] == 'NY') | (df['State'] == 'FL')]
df = df[['State', 'Distance(mi)', 'Start_Time']]
df['Start_Time'] = pd.to_datetime(df['Start_Time'])
df['Hour'] = df['Start_Time'].dt.hour
hourly_data = df.groupby(['State', 'Hour'], as_index=False)['Distance(mi)'].count()
绘制堆叠面积图

现在,我们已经完成了数据准备的工作,接下来我们可以绘制堆积面积图了。我们将使用Plotly的px.area函数来绘制堆叠面积图。

import plotly.express as px

fig = px.area(hourly_data, x='Hour', y='Distance(mi)', color='State', line_group='State')
fig.update_layout(title='Hourly Accidents by State in 2017',
                  xaxis_title='Hour of Day', yaxis_title='Number of Accidents')
fig.show()

这将显示一个交互式的堆叠面积图,可以使用鼠标滚轮放大/缩小,点击图例控制某个州的显示与否。以下是堆叠面积图的示例输出:

Plotly堆叠面积图

总结

在本文中,我们通过使用Plotly库和Pandas库创建了堆叠面积图,并使用美国各州2017年交通事故的数据集进行演示。运用所学知识,你可以将它应用到你自己的数据集中。