Seaborn数据可视化实战:Seaborn与Plotly交互式图表入门
交互式图表
学习目标
本课程将引导你学习如何使用Seaborn和Plotly库创建交互式图表。通过本课程的学习,你将能够结合这两个强大的数据可视化工具,创建出既美观又功能丰富的图表,从而提高数据探索的效率。
相关知识点
- Seaborn与Plotly创建交互式图表
学习内容
1 Seaborn与Plotly创建交互式图表
Seaborn 和 Plotly 是 Python 中两个强大的数据可视化库,将它们结合使用可以充分发挥两者的优势,创建出既美观又交互性强的图表。
两者的功能特点:
- Seaborn:基于 Matplotlib,提供了更高级的 API 接口,专注于统计图表的绘制,如热度图、分布图、回归图等。它具有美观的默认样式,能够自动处理多类别的绘图以及颜色的自动映射,还内置了统计功能,可直接根据数据生成统计图表。
- Plotly:是一款交互式的数据可视化工具,支持多种编程语言,包括 Python。它提供了丰富的图表类型和定制化选项,支持交互式操作和动态展示,图表可以嵌入到 Web 应用程序中,并在网页上进行交互和分享。
结合使用的优势:
- 数据处理与可视化展示互补:Seaborn 在数据处理和统计分析方面表现出色,能够快速生成复杂的统计图形,而 Plotly 则擅长将这些图形转化为交互式图表,增强用户体验。
- 丰富的图表类型与交互性结合:Seaborn 提供了多种统计图表类型,Plotly 则为这些图表添加了交互性,如悬停显示数据点信息、缩放、筛选等功能。
1.1 Seaborn基础
Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了更高级的接口,用于绘制更具吸引力和信息量的统计图形。Seaborn简化了许多复杂的绘图步骤,使得数据可视化变得更加直观和高效。
安装Seaborn
在开始之前,确保你的环境中已经安装了Seaborn。如果还没有安装,可以通过pip安装:
%pip install seaborn
从obs桶中获取数据
!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/ccef5c66312b11f09824fa163edcddae/data.zip
!unzip data.zip
基本绘图
Seaborn提供了多种绘图函数,如distplot
、boxplot
、violinplot
等。这些函数可以快速生成各种统计图表。下面是一个使用Seaborn绘制箱线图的例子:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 替换为你的本地文件路径
tips = pd.read_csv('tips.csv')# 绘制箱线图
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("Total Bill by Day")
plt.show()
这段代码首先加载了一个示例数据集tips
,然后使用boxplot
函数绘制了一个箱线图,展示了不同日子的总账单分布情况。
1.2 Plotly基础
Plotly是一个开源的图表库,支持多种编程语言,包括Python。Plotly不仅提供了丰富的图表类型,还支持图表的交互功能,如缩放、平移、悬停显示数据等。这些功能使得Plotly成为数据探索和展示的理想工具。
安装Plotly
同样,确保你的环境中已经安装了Plotly。如果还没有安装,可以通过pip安装:
%pip install plotly
%pip install --upgrade nbformat
import plotly.offline as pyo
pyo.init_notebook_mode()
基本绘图
Plotly的绘图函数通常返回一个Figure
对象,可以通过这个对象进一步修改图表的属性。下面是一个使用Plotly绘制散点图的例子:
import plotly.express as px
import pandas as pd
# 加载示例数据集
df = px.data.iris()
# 绘制散点图
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()
这段代码使用Plotly的scatter
函数绘制了一个散点图,展示了鸢尾花数据集中不同种类的花的萼片宽度和长度的关系。
1.3 结合Seaborn与Plotly创建交互式图表
虽然Seaborn和Plotly各自都有强大的绘图功能,但将它们结合起来可以创建出更加丰富和交互性强的图表。下面是一个结合Seaborn和Plotly创建交互式箱线图的例子:
数据准备
首先,我们需要准备一些数据。这里我们继续使用Seaborn的tips
数据集:
import seaborn as sns# 加载示例数据集
tips = pd.read_csv('tips.csv')
使用Seaborn绘制基础图表
接下来,我们使用Seaborn绘制一个基础的箱线图:
import matplotlib.pyplot as plt# 绘制箱线图
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("Total Bill by Day")
plt.show()
使用Plotly绘制交互式箱线图
import plotly.express as px# 创建交互式箱线图
fig = px.box(tips, x="day", y="total_bill", title="Total Bill by Day (Interactive)")
fig.show()
这段代码使用 Plotly 的 box 函数绘制了一个交互式的箱线图。通过 Plotly 的交互功能,你可以悬停在箱线图的各个部分查看详细信息,还可以进行缩放和筛选。