在数据分析过程中,数据可视化是一项重要的技能,能够帮助我们快速理解数据的分布、趋势和关系。而 Plotly Express 是 Plotly 库的一部分,提供了创建交互式图表的简单而强大的工具。它结合了简单的 API 和高度可定制的功能,使用户能够快速创建交互式、专业的可视化图表。本文将详细介绍如何使用 Plotly Express 快速创建交互式图表,并为每一个步骤提供清晰的代码和解释。
? 什么是 Plotly Express?
Plotly Express 是一个用于快速创建交互式图表的库。它基于 Plotly,允许用户通过非常简单的代码就能绘制出具有交互功能的精美图表,适用于数据探索和展示。它支持多种类型的图表,包括散点图、柱状图、线图、直方图等。
? Plotly Express 的主要优势
- 简单快捷:使用很少的代码就能生成丰富的交互式图表。
- 支持多种数据格式:可以直接从 Pandas DataFrame 进行可视化。
-
高度交互:生成的图表可以实现缩放、悬浮显示数据、拖拽等交互功能。
? 安装和导入 Plotly Express
在开始之前,首先需要安装 Plotly:
pip install plotly
解释:
- 使用 pip 安装 Plotly,可以直接在命令行运行上述命令,确保在 Python 环境中可以使用 Plotly Express。
接下来,我们导入 plotly.express 作为 px,这样可以简化代码书写:import plotly.express as px import pandas as pd
解释:
-
import plotly.express as px
:将 Plotly Express 导入为px
,方便后续使用。 -
import pandas as pd
:导入 Pandas,通常我们会从 Pandas 的 DataFrame 中提取数据进行可视化。? 快速创建交互式图表
1. 创建散点图
散点图是数据可视化中最常用的图表之一,用于观察变量之间的关系。例如,使用内置的
gapminder
数据集创建一个人口与 GDP 的散点图。df = px.data.gapminder() fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", size="pop", hover_name="country", log_x=True, title="GDP 与人均寿命关系", labels={"gdpPercap": "人均 GDP", "lifeExp": "预期寿命"}) fig.show()
解释:
-
df = px.data.gapminder()
:从 Plotly Express 获取内置的gapminder
数据集。 -
px.scatter()
:创建散点图。 -
x="gdpPercap"
:横坐标是人均 GDP。 -
y="lifeExp"
:纵坐标是预期寿命。 -
color="continent"
:不同的洲使用不同的颜色。 -
size="pop"
:点的大小根据国家的人口变化。 -
hover_name="country"
:鼠标悬停时显示国家名称。 -
log_x=True
:对 x 轴使用对数缩放,以更好地显示 GDP 数据。 -
title="GDP 与人均寿命关系"
:设置图表的标题。 -
labels
:设置轴标签。
交互功能: - 图表支持鼠标悬停以查看详细数据、缩放和拖拽。
2. 创建柱状图
柱状图适合展示分类数据之间的对比。以下示例创建了一个显示各洲人口的柱状图。
df = px.data.gapminder().query("year == 2007") fig = px.bar(df, x="continent", y="pop", color="continent", title="2007 年各洲人口统计", labels={"pop": "人口", "continent": "洲"}) fig.show()
解释:
-
query("year == 2007")
:筛选出2007
年的数据。 -
px.bar()
:创建柱状图。 -
x="continent"
和y="pop"
:分别表示 x 轴和 y 轴的字段。 -
color="continent"
:使用不同颜色区分不同洲。 -
title
:设置图表标题。3. 创建折线图
折线图可以展示数据随时间的变化趋势。下方代码创建了一个显示加拿大人口变化的折线图。
canada = df[df["country"] == "Canada"] fig = px.line(canada, x="year", y="pop", title="加拿大人口随年份的变化趋势", labels={"pop": "人口", "year": "年份"}) fig.show()
解释:
-
df[df["country"] == "Canada"]
:选择country
字段等于 "Canada" 的数据。 -
px.line()
:创建折线图。 -
x="year"
:年份作为横轴。 -
y="pop"
:人口数量作为纵轴。 -
title
:设置图表标题。4. 创建直方图
直方图用于查看数据分布情况。以下代码生成一个 2007 年预期寿命的分布直方图。
fig = px.histogram(df, x="lifeExp", title="2007 年各国预期寿命分布", labels={"lifeExp": "预期寿命"}) fig.show()
解释:
-
px.histogram()
:创建直方图。 -
x="lifeExp"
:显示预期寿命的分布情况。 -
title
:设置图表标题。? 地理可视化
Plotly Express 还可以用来绘制地理图表,例如 世界地图上的数据分布。
fig = px.choropleth(df, locations="iso_alpha", color="lifeExp", hover_name="country", color_continuous_scale=px.colors.sequential.Plasma, title="2007 年各国预期寿命地理分布") fig.show()
解释:
-
px.choropleth()
:绘制地理分布图。 -
locations="iso_alpha"
:根据iso_alpha
字段标识国家。 -
color="lifeExp"
:用颜色表示预期寿命。 -
hover_name="country"
:鼠标悬停时显示国家名称。 -
color_continuous_scale
:设置颜色的渐变样式。?️ 工作流程总结
使用 Plotly Express 创建交互式图表的工作流程可以总结为以下几个步骤:
-
导入库和数据:引入
plotly.express
和pandas
,并获取或导入数据。 - 选择图表类型:根据数据特点选择合适的图表类型(如散点图、柱状图、折线图等)。
-
指定参数:通过
px
的函数提供数据列的映射(如 x 轴、y 轴、颜色等),并设置标题和标签。 -
显示图表:使用
fig.show()
显示生成的交互式图表。? Plotly Express 图表类型脑图
graph TD A[Plotly Express 图表类型] --> B[散点图] A --> C[柱状图] A --> D[折线图] A --> E[直方图] A --> F[地理分布图] B --> G[展示数据关系] C --> H[分类数据对比] D --> I[时间序列变化] E --> J[数据分布] F --> K[全球数据展示]
? 总结
Plotly Express 提供了创建交互式数据可视化图表的快捷方法。它通过简单的语法和丰富的功能,使得数据科学家和开发人员能够快速生成高质量的图表,并在其中与数据进行交互。无论是用来探索数据还是创建交互式报表,Plotly Express 都能大大提高工作效率。
Plotly Express 的优点:
-
导入库和数据:引入
- 简单而强大:通过少量代码生成功能丰富的图表。
- 支持多种图表类型:包括散点图、柱状图、折线图、直方图和地理图等。
-
高度交互性:每个图表支持缩放、悬浮显示详细信息等操作。
在数据可视化中,选择合适的工具可以极大地简化工作流程。对于想要快速生成交互式图表的人来说,Plotly Express 是一个不容错过的选择。