Python数据可视化-快速掌握
📊 数据可视化简介
数据科学工作流
数据科学的工作流可以用“OSEMN”来总结,具体步骤如下:
步骤 常用库
Obtain(获取数据) Scrapy
Scrub(清洗数据) NumPy、Pandas
Explore(展示数据) Matplotlib、Seaborn
Model(数据建模) scikit-learn、SciPy、TensorFlow
Interpret(解析数据) Bokeh、D3.js
数据可视化的定义
数据可视化是数据科学中“Explore(展示数据)”这一环节,指的是将数据以图表的方式展示和处理。课程中将介绍三种最常用的可视化库:
Matplotlib:基础的绘图库,用于创建静态、动态和交互式的图表。
Seaborn:基于Matplotlib,提供更高级的接口和更美观的图表。
Pyecharts:用于生成图表的库,特别适合于Web展示。
学习要求
在学习数据可视化之前,必须具备数据分析的基础,至少要掌握以下两个库:
NumPy:用于数值计算和数组操作的库。
Pandas:用于数据处理和分析的库,提供了数据结构和操作工具。
📊 Matplotlib 基础知识
-
教学重点
了解常用的可视化库
掌握 Matplotlib 通用设置
掌握 Matplotlib 基础图表的绘制 -
Matplotlib 简介
在 Python 中,我们可以使用 Matplotlib 库来实现数据的可视化。数据可视化是指将数据以图表的方式展示处理。 -
基本绘图(折线图)
3.1 基本语法
在 Matplotlib 中,使用 plot() 函数绘制折线图。折线图主要用于观察“因变量 y”随着“自变量 x”改变的趋势,特别适合展示随时间变化的连续数据。
语法:
python
Copy
plt.plot(x, y)
3.2 样式定义
为了使折线图更加美观,plot() 函数提供了多个样式参数,主要分为两类:
线条样式
节点样式
3.2.1 线条样式
在 Matplotlib 中,定义线条样式的参数有以下三个:
属性 说明
color 线条颜色
linestyle 线条外观
linewidth 线条宽度
3.2.2 节点样式
在 Matplotlib 中,定义节点样式的参数有以下四个:
参数 说明
marker 节点外观
markersize 或 ms 节点大小
markerfacecolor 或 mfc 节点颜色
markeredgecolor 或 mec 边框颜色
4. 通用设置
通用设置不仅适用于折线图,也适用于其他大多数图表。大多数通用设置函数通过 pyplot 子库调用。
导入方式:
python
Copy
import matplotlib.pyplot as plt
4.1 画布样式
使用 figure() 函数定义画布的样式,包括大小、颜色、边框等。
语法:
python
Copy
plt.figure(figsize, facecolor, edgecolor)
4.2 定义标题
使用以下函数定义主标题、x轴标题和y轴标题:
语法:
python
Copy
plt.title(label, loc) # 主标题
plt.xlabel(label, loc) # x轴标题
plt.ylabel(label, loc) # y轴标题
4.3 定义图例
使用 legend() 函数为图表定义图例。
语法:
python
Copy
plt.legend(loc)
4.4 刻度标签
使用 xticks() 和 yticks() 函数分别定义x轴和y轴的刻度标签。
语法:
python
Copy
plt.xticks(ticks, labels)
plt.yticks(ticks, labels)
4.5 刻度范围
使用 xlim() 和 ylim() 函数定义x轴和y轴的范围。
语法:
python
Copy
plt.xlim(left, right)
plt.ylim(left, right)
4.6 网格线
使用 grid() 函数为图表添加网格线效果。
语法:
python
Copy
plt.grid(axis, linestyle, color)
4.7 参考线
使用 axhline() 和 axvline() 函数添加水平方向和垂直方向的参考线。
语法:
python
Copy
plt.axhline(y, color, linestyle, linewidth)
plt.axvline(x, color, linestyle, linewidth)
4.8 参考区域
使用 axhspan() 和 axvspan() 函数添加水平方向和垂直方向的参考区域。
语法:
python
Copy
plt.axhspan(ymin, ymax, facecolor, alpha)
plt.axvspan(xmin, xmax, facecolor, alpha)
4.9 注释文本(有指向)
使用 annotate() 函数为关键节点添加有指向的注释文本。
语法:
python
Copy
plt.annotate(text, xy, xytext, arrowprops)
4.10 注释文本(无指向)
使用 text() 函数为节点添加注释文本。
语法:
python
Copy
plt.text(x, y, text)
5. 通用样式
在 Matplotlib 中,有一些样式参数可以被大多数绘图函数使用,这些参数称为“通用样式参数”。
参数 说明
color 颜色
fontsize 文本大小
ha 水平对齐
va 垂直对齐
label 图例
alpha 透明度(0~1.0)
6. 散点图
6.1 基本语法
使用 scatter() 函数绘制散点图。
语法:
python
Copy
plt.scatter(x, y)
6.2 散点图的主要作用
变量之间关联趋势的判断(线性或非线性)
判断是否有离群点(异常点)
6.3 样式定义
sctatter() 方法提供了多个样式参数,常用的如下表所示:
参数 说明
marker 散点的形状
s 散点的大小(size)
color 散点的颜色(color)
alpha 散点的透明度(0~1.0)
7. 实际案例
clothes.csv 文件保存的某衣服店一年内每个月中上衣和裤子的销量(单位:件)。
-
气泡图
使用 scatter() 函数的 s 参数绘制气泡图,注意 s 参数的值要求是一个列表。 -
柱形图
9.1 基本语法
使用 bar() 函数绘制柱形图,柱形图的主要作用是展示数据的大小。
语法:
python
Copy
plt.bar(x, y, hatch)
9.2 实际案例
gaokao.csv 文件保存的 2011~2020 年间每年的高考人数(单位:万人)。
9.3 高级绘图
柱状图的使用频率较高,某些情况下,基本柱状图可能无法满足需求,需要掌握以下高级柱状图的绘制:
堆叠柱状图
并列柱状图
10. 条形图
条形图与柱形图类似,最重要的区别在于柱形图是纵向的。
📊 条形图与直方图
- 条形图
1.1 基本语法
在Matplotlib中,我们可以使用 barh() 函数来绘制一个条形图。其语法为:
python
Copy
plt.barh(x, y, hatch)
2. 直方图
2.1 基本语法
在Matplotlib中,我们可以使用 hist() 函数来绘制一个直方图。直方图又叫做“质量分布图”,它的主要作用是展示数据的分布情况。其语法为:
python
Copy
plt.hist(x, bins)
2.2 直方图与柱状图的区别
直方图和柱状图十分相似,主要区别有以下三个方面:
特点 柱状图 直方图
数据展示 展示数据的大小 展示数据的个数(频率)
数据类型 离散型数据 连续型数据
矩形条之间的间隙 有固定的间隙 没有任何间隙
2.3 样式定义
为了让直方图更加美观,hist() 函数提供了很多用于定义样式的参数,常用的如下表所示。
参数 说明
histtype 直方图类型
rwidth 条形的宽度
facecolor 条形的颜色
edgecolor 边框的颜色
alpha 透明度
🍰 饼状图
- 基本语法
在Matplotlib中,我们可以使用 pie() 函数来绘制一个饼状图。饼状图也叫做“饼图”,其作用是展示各个部分在总和中的比例。语法为:
python
Copy
plt.pie(x)
2. 样式定义
为了让饼状图更加美观,pie() 函数提供了很多用于定义样式的参数,常用的如下表所示。
参数 说明
labels 各部分的标题(列表)
colors 各部分的颜色(列表)
autopct 显示百分比
explode 是否拉出某部分(元组)
shadow 是否显示阴影(元组)
3. 圆环图
圆环图,也叫做“环形图”。在Matplotlib中,我们可以使用 pie() 函数的 radius 和 wedgeprops 这两个参数配合使用来实现一个圆环图。
📦 箱线图
- 基本语法
箱线图,也叫做“箱形图”。箱线图使用六个统计量来描述数据,包括最大值、上四分位数、中位数、下四分位数、最小值和异常值。
在Matplotlib中,我们可以使用 boxplot() 函数来绘制一个箱线图。其主要作用有两个:查看数据的分布情况和发现数据中的异常点。语法为:
python
Copy
plt.boxplot(x)
2. 样式定义
为了使箱线图更加美观,boxplot() 函数提供了很多用于定义样式的参数,常用的如下表所示。
参数 说明
notch 是否有缺口,默认为 False(不带缺口)
vert 是否为纵向,默认为 True(纵向)
showmeans 是否显示平均值,默认为 False(不显示)
showfliers 是否显示异常值,默认为 True(显示)
flierprops 异常点的样式,值是一个字典
boxprops 箱子的样式,值是一个字典,需要结合 patch_artist=True 一起使用
labels 指定每个箱线图的标签
3. 实际案例
例如,staff.csv 文件保存的是所有员工的年龄,接下来我们尝试使用箱线图来判断年龄是否存在异常值。
🎨 高级图表绘制
📝 教学重点
掌握Matplotlib各种高级图表的绘制
📊 3.1 高级图表简介
本章介绍了Matplotlib中的高级图表,主要包括以下7种。
🔍 3.2 阶梯图
- 基本语法
阶梯图是一种类似于折线图的图表,用于反映数据的趋势变化,尤其适合展示时序数据的波动周期或规律。在Matplotlib中,可以使用step()函数绘制阶梯图。
语法:
python
Copy
plt.step(x, y)
2. 实际案例
使用gaokao.csv文件中保存的2011~2020年每年高考人数(单位:万人)绘制阶梯图。
📈 3.3 面积图
- 基本语法
面积图是一种随时间变化而改变范围的图表,强调数量与时间的关系。在Matplotlib中,可以使用stackplot()函数绘制面积图。
语法:
python
Copy
plt.stackplot(x, y)
2. 实际案例
使用sale.csv文件中保存的某公司2020年每个月的销售总额(单位:万元)绘制面积图。
- 高级绘图
在实际开发中,基本面积图可能无法满足需求,需掌握高级面积图的绘制,常见的有堆叠面积图。
📏 3.4 棉棒图
- 基本语法
棉棒图(也称棒棒糖图或火柴杆图)由一个“杆”(直线)和一个“头”(圆点)组成。在Matplotlib中,可以使用stem()函数绘制棉棒图。
语法:
python
Copy
plt.stem(x, y)
2. 样式定义
stem()函数提供了多个样式定义参数,常用的有linefmt和markerfmt。
- 实际案例
使用product.csv文件中的每月产品销量绘制棉棒图。
🧪 3.5 误差棒图
- 基本语法
许多科学实验存在测量误差,绘制误差棒图是对实验结果添加误差的好方法。在Matplotlib中,可以使用errorbar()函数绘制误差棒图。
语法:
python
Copy
plt.errorbar(x, y, xerr, yerr)
2. 样式定义
errorbar()函数提供多种样式参数,常用的如下表所示:
参数 说明
color 整体颜色
linestyle 线条外观
linewidth 线条宽度
marker 节点外观
markersize 节点大小
markerfacecolor 节点颜色
markeredgecolor 节点边框颜色
ecolor 棒条颜色
elinewidth 棒条粗细
capsize 横杠大小
3. 高级绘图
柱状图和误差棒图可以结合使用,绘制带误差棒的柱状图。
🌐 3.6 雷达图
- 基本语法
在Matplotlib中,可以使用polar()函数绘制雷达图。
语法:
python
Copy
plt.polar(theta, r)
2. 样式定义
为提高用户体验,需要对雷达图进行自定义,主要包括刻度标签和填充颜色。
(1)刻度标签
使用thetagrids()函数定义雷达图的刻度标签。
语法:
python
Copy
plt.thetagrids(angles, labels)
(2)填充颜色
使用fill()函数对雷达图进行填充颜色。
语法:
python
Copy
plt.fill(theta, r, color, alpha)
3. 实际案例
展示一个英雄的能力指标(力量、敏捷、智力、生命、魔法、耐力)的雷达图。
🔥 3.7 热力图
- 基本语法
热力图以高亮方式显示区域的密度情况。在Matplotlib中,可以使用imshow()函数绘制热力图。
语法:
python
Copy
plt.imshow(x)
2. 样式定义
使用cmap参数定义热力图的颜色,常用取值如下表所示:
取值 说明
plt.cm.gray 黑→灰→白
plt.cm.bone 黑→蓝灰→白
plt.cm.hot 黑→红→白
plt.cm.cool 青绿→浅蓝→品红
plt.cm.spring 品红→橙黄→黄色
plt.cm.summer 深绿→浅绿→黄色
plt.cm.autumn 红→橙→黄
plt.cm.winter 蓝→青蓝→绿
3. 注意事项
Matplotlib的热力图能力有限,实际开发中推荐使用Seaborn实现热力图。
📊 3.8 子图表
- 基本语法
在Matplotlib中,可以使用subplot()函数绘制多个子图表。
语法:
python
Copy
plt.subplot(rows, cols, index)
2. 实际案例
绘制一个2×2的组合图表,包括折线图、散点图、柱形图和饼状图。
🎨 Matplotlib 使用指南
📚 教学重点
本节课的学习重点包括:
掌握如何设置主题风格
掌握如何保存图片
掌握如何添加水印效果
了解全局配置
掌握 setp() 和 getp()
4.1 主题风格
在 Matplotlib 中,默认的图表风格非常简陋。为了提升用户体验,我们可以使用 plt.style.use() 函数来定义主题风格。
语法:
python
Copy
plt.style.use(主题名)
4.2 保存图片
我们可以使用 savefig() 函数将图表保存为图片文件。
语法:
python
Copy
plt.savefig(path)
4.3 水印效果
text() 函数主要用于为节点添加注释文本,但我们也可以利用它为整个图表添加水印效果。
语法:
python
Copy
plt.text(x, y, text)
4.4 全局配置
在 Matplotlib 中,通过 matplotlibrc 文件可以修改图表的默认样式。该文件保存了所有的默认配置项。
4.5 setp() 和 getp()
在 Matplotlib 中,setp() 和 getp() 函数用于操作绘图对象的属性。
- setp()
使用 setp() 函数可以给图表对象设置属性(参数)。
语法:
python
Copy
plt.setp(obj, ……)
2. getp()
使用 getp() 函数可以查看图表对象的所有属性及其值。
语法:
python
Copy
plt.getp(obj)
📊 Seaborn 数据可视化
教学重点
- 了解 Seaborn 是什么
- 掌握 Seaborn 通用设置
- 掌握 Seaborn 基础图表的绘制
5.1 Seaborn简介
1、Seaborn是什么
Seaborn 是基于 Matplotlib 实现的数据可视化库,相比于 Matplotlib,Seaborn 有两个最重要的优势:
- 语法更加简单好用
- 图表更加高级美观
2、使用Seaborn的注意事项
在实际工作中,有以下四点需要特别注意:
| 注意事项 | 描述 |
|---|---|
| 1. 首选Seaborn | 在实际工作中,应优先选择Seaborn进行数据可视化,只有在Seaborn无法实现时才考虑使用Matplotlib。 |
| 2. 基于Matplotlib | Seaborn是基于Matplotlib实现的,很多方法有相似之处。 |
| 3. 图表种类 | Seaborn只提供最常用图表的绘制函数,对于其他不常用的图表并没有提供绘制函数。 |
| 4. 数据格式 | Seaborn与Pandas结合使用,数据必须是 Series 或 DataFrame,而不能是其他数据类型。 |
5.2 基本绘图(折线图)
1、基本语法
在Seaborn中,使用 lineplot() 函数绘制折线图。折线图的主要作用是观察因变量 yyy 随着自变量 xxx 的变化趋势。
语法:
sns.lineplot(data, x, y)
2、深入了解
Seaborn可以在不显式指定
KaTeX can only parse string typed expression
x 和
KaTeX can only parse string typed expression
y 的情况下自动绘图。
3、实际案例
使用 flight.csv 文件,该文件保存了某航空公司1949至1960年每月的乘客人数,尝试绘制其对应的折线图。
5.3 通用设置
通用设置可以用于折线图及其他大多数图表,主要包括以下五个方面:
设置项 描述
主题风格 使用 set_style() 函数设置主题风格。
定义标题 使用 set_title()、set_xlabel() 和 set_ylabel() 函数定义图表和轴的标题。
定义图例 使用 legend() 函数调整图例的位置。
刻度标签 使用 set_xticklabels() 和 set_yticklabels() 函数定义 x 轴和 y 轴的刻度标签。
刻度范围 使用 set_xlim() 和 set_ylim() 函数定义 x 轴和 y 轴的坐标范围。
5.4 散点图
1、基本语法
在Seaborn中,使用 scatterplot() 函数绘制散点图。散点图的主要作用是判断两个变量之间是否存在关联趋势。
语法:
python
Copy
sns.scatterplot(data, x, y)
2、实际案例
使用 tip.csv 文件,该文件保存了某餐厅的营业情况,包括总额、小费和客人信息,尝试绘制其对应的散点图。
3、scatterplot()的参数
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
hue 添加区分(颜色)
style 添加区分(形状)
size 添加区分(大小)
sizes 自定义大小
5.5 柱形图
1、基本语法
在Seaborn中,使用 barplot() 函数绘制柱形图。柱形图的主要作用是展示数据的大小。
语法:
python
Copy
sns.barplot(data, x, y)
2、实际案例
使用 tip.csv 文件,尝试绘制其对应的柱形图。
3、误差棒
在 barplot() 函数中,用于定义误差棒样式的参数有三个,如下表所示:
参数 说明
errcolor 棒条颜色
errwidth 棒条宽度
capsize 横杠大小
4、barplot()的参数
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
hue 添加区分
order 改变顺序
dodge 合并显示
errcolor 棒条颜色
errwidth 棒条宽度
capsize 横杠大小
5.6 直方图
1、基本语法
直方图和柱状图十分相似,但功能不同:柱状图用于展示数据大小,直方图用于展示数据个数(频率)。在Seaborn中,使用 histplot() 函数绘制直方图。
语法:
python
Copy
sns.histplot(data, x, y, bins)
2、实际案例
使用 penguin.csv 文件,该文件保存了344只企鹅的相关数据,尝试绘制其对应的直方图。
📊 箱线图 (Boxplot)
"箱线图是一种有效的数据可视化工具,主要用于展示数据分布情况和识别异常值。"
1. 基本语法
在 Seaborn 中,我们可以使用 boxplot() 函数来绘制箱线图。其主要作用包括:
查看数据的分布情况
判断是否有异常值
语法:
python
Copy
sns.boxplot(data, x, y)
2. 实际案例
在实际案例中,我们使用 tip.csv 文件,该文件保存某餐厅的营业情况,包括总额、小费和客人信息等。通过绘制其对应的箱线图,我们可以直观地分析数据。
3. boxplot() 的参数
箱线图的参数及其说明如下表所示:
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
hue 添加区分(颜色)
order 改变顺序
其他参数
hue: 通过颜色区分不同的类别。
order: 用于改变数据的显示顺序。
4. 箱线图的组成部分
箱线图通常由以下几个部分组成:
箱体: 表示数据的四分位数,箱体的上下边缘分别是上四分位数和下四分位数。
中位线: 箱体内部的线条表示数据的中位数。
须: 伸出箱体的线条,表示数据的范围。
异常值: 位于须之外的点,表示异常数据。
通过以上内容,学生可以理解和应用箱线图的基本知识,并能够在 Seaborn 中使用相关函数进行数据可视化。
📊 高级图表
6.1 高级图表简介
这一章我们来介绍Seaborn中的高级图表,主要包括以下6种:
热力图
核密度图
小提琴图
增强箱线图
分类散点图
线性回归图
🌡️ 6.2 热力图
1. 基本语法
在Seaborn中,我们可以使用heatmap()函数来绘制一个热力图。热力图的主要作用是以高亮的方式来显示区域的密度情况,以展示数据的差异性。
语法:
python
Copy
sns.heatmap(data)
2. 实际案例
flight.csv文件保存的是某航空公司1949~1960这12年内每个月的乘客人数,我们尝试绘制其对应的热力图。
heatmap()的参数
参数 说明
data 数据部分(二维)
annot 添加注释文本,True或False
fmt 定义数据格式
cmap 定义颜色风格
linewidth 添加间距
cbar 显示颜色条,True或False
🌌 6.3 核密度图
核密度图和直方图的功能非常相似,都是用于展示数据的分布情况,不过它们之间有以下2个方面的区别:
直方图使用“条形”来展示,核密度图使用“曲线”来展示。
直方图的纵坐标是数据的个数,核密度图的纵坐标是数据的密度。
1. 基本语法
在Seaborn中,我们可以使用kdeplot()函数来绘制一个核密度图。其中,kdeplot是“Kernel Density Estimate(核密度估计)”的缩写。
语法:
python
Copy
sns.kdeplot(data, x, y)
2. 实际案例
tip.csv文件保存的是某餐厅营业情况,包括总额、小费、客人信息等,我们尝试绘制其对应的核密度图。
kdeplot()的参数
参数 说明
data 数据部分
x x轴坐标
y y轴坐标
hue 添加区分(颜色)
multiple="stack" 堆叠显示(面积图)
multiple="fill" 填充显示
bw_adjust 曲线平滑度
cut=0 切除小数部分
common_norm=False 独立计算面积
🎻 6.4 小提琴图
1. 基本语法
小提琴图是一种组合型的图表,它同时结合了箱线图和核密度图的功能。在Seaborn中,我们可以使用violinplot()函数来绘制一个小提琴图。
语法:
python
Copy
sns.violinplot(data, x, y)
2. 实际案例
tip.csv文件保存的是某餐厅营业情况,包括总额、小费、客人信息等,我们尝试绘制其对应的小提琴图。
violinplot()的参数
参数 说明
data 数据部分
x x轴坐标
y y轴坐标
hue 添加区分(颜色)
order 改变顺序
split=True 合并显示
inner="quartile" 添加百分位线
inner="stick" 每一个数据一条线
bw_adjust 曲线平滑度
📦 6.5 增强箱线图
1. 基本语法
在Seaborn中,我们可以使用boxenplot()函数来绘制一个“增强版”的箱线图。
语法:
python
Copy
sns.boxenplot(data, x, y)
2. 实际案例
tip.csv文件保存的是某餐厅营业情况,包括总额、小费、客人信息等,我们尝试绘制其对应的增强箱线图。
boxenplot()的参数
参数 说明
data 数据部分
x x轴坐标
y y轴坐标
📊 分布散点图与线性回归图
1. 分布散点图基本概念
分布散点图(strip plot)是用于查看数据分布情况的一种可视化工具。与普通散点图不同,普通散点图主要用于判断两个变量之间是否存在关联趋势,而分布散点图则专注于数据的分布特征。
基本语法
在 Seaborn 库中,我们可以使用 stripplot() 函数来绘制分布散点图。其语法如下:
python
Copy
sns.stripplot(data, x, y)
2. 分布散点图实际案例
在本节中,我们将使用名为 tip.csv 的文件,该文件保存了某餐厅的营业情况,包括总额、小费及客人信息等。我们尝试通过该数据绘制分布散点图。
3. stripplot() 函数参数
以下是 stripplot() 函数的主要参数及其说明:
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
hue 添加区分
dodge=True 单独显示
order 改变顺序
4. 线性回归图基本概念
线性回归图(regression plot)又称回归图,主要用于表现两个变量之间的线性关系。该图在散点图的基础上,增加了一条直线(或曲线),这条线是通过最小二乘法预测得到的,表示两个变量之间的关系,形式为
KaTeX can only parse string typed expression
y=ax+b。
基本语法
在 Seaborn 库中,我们可以使用 regplot() 函数来绘制线性回归图。其语法如下:
python
Copy
sns.regplot(data, x, y)
5. 线性回归图实际案例
与分布散点图类似,我们将继续使用 tip.csv 文件,尝试绘制其对应的线性回归图。
6. regplot() 函数参数
以下是 regplot() 函数的主要参数及其说明:
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
color 整体颜色
marker 散点外观
ci 置信区间
📊 Seaborn 图表绘制
教学重点
掌握子图表的绘制
掌握图表分组
掌握双变量图的绘制
掌握多变量图的绘制
了解各种调色板
了解内置数据集
7.1 子图表
基本语法
在 Seaborn 中绘制多个子图表可以使用 Matplotlib 提供的 subplots() 函数。注意,这里的 subplots 后面有一个“s”。
语法:
python
Copy
fig, axes = plt.subplots(nrows, ncols, sharex, sharey)
7.2 图表分组
我们可以使用 catplot() 函数绘制分组型图表,其中 catplot 是“category plot(分类图表)”的缩写。
语法:
python
Copy
sns.catplot(kind, col)
7.3 双变量图
在 Seaborn 中,使用 jointplot() 函数绘制双变量图。这个图同时展示两个变量之间的关系和各自的数据分布。
语法:
python
Copy
sns.jointplot(data, x, y)
jointplot() 的参数
参数 说明
data 数据部分
x x 轴坐标
y y 轴坐标
hue 添加区分(颜色)
kind 图表类型
marker 散点外观
7.4 多变量图
多变量图也称为“矩阵图”或“多变量关系图”,用于将数据集中不同字段进行“两两比较”。在 Seaborn 中使用 pairplot() 函数绘制。
语法:
python
Copy
sns.pairplot(data)
pairplot() 的参数
参数 说明
data 数据部分
hue 添加区分(颜色)
diag_kind 对角使用直方图(默认值为 "hist")
marker 散点外观
vars x 轴和 y 轴使用的字段
x_vars x 轴使用的字段
y_vars y 轴使用的字段
7.5 各种调色板
在 Seaborn 中,可以使用调色板来自定义颜色风格,主要包括以下两种:
1. 分类调色板
分类调色板用于区分没有固定顺序的离散数据,最常用于散点图、柱形图、条形图等。使用 set_palette() 函数。
语法:
python
Copy
sns.set_palette(palette)
2. 连续调色板
连续调色板用于区分连续型数据,最常用于热力图。使用 light_palette() 或 dark_palette() 函数。
语法:
python
Copy
sns.light_palette(color, reverse)
sns.dark_palette(color, reverse)
7.6 内置数据集
Seaborn 提供了一些经典数据集,方便进行基本图表绘制。可以通过 load_dataset() 函数获取。
语法:
python
Copy
sns.load_dataset(name)
# 📊 Pyecharts概述
## 1. Pyecharts简介
> Pyecharts是Python中用于Web开发的强大可视化库,能够提供丰富的图表和交互功能,适用于与Flask、Django、Sanic、Tornado等Web框架结合使用。
## 2. Pyecharts的应用场景
- **日常工作中的可视化**:首选Seaborn库。
- **Web开发中的可视化**:推荐使用Pyecharts。
## 3. Pyecharts的基本用法
### 3.1 引入库
在使用Pyecharts之前,我们需要引入Pandas库和Pyecharts模块:
```python
import pandas as pd
from pyecharts.charts import 模块名
📈 折线图
1. 基本语法
使用Line模块绘制折线图:
python
Copy
line = Line()
line.add_xaxis(xaxis_data)
line.add_yaxis(series_name, y_axis)
2. 样式定义
折线图样式的自定义包括:
平滑线
线条外观
面积图
3. 自定义样式注意事项
自定义样式一般使用add_yaxis()方法的参数。
参数名为“xxx_opts”形式的,取值是pyecharts.options中的属性或方法。
📊 柱形图
1. 基本语法
使用Bar模块绘制柱形图:
python
Copy
bar = Bar()
bar.add_xaxis(xaxis_data)
bar.add_yaxis(series_name, y_axis)
2. 高级绘图
高级柱形图包括:
类型 描述
横向柱形图 使用reversal_axis()方法改变方向
堆叠柱形图 使用add_yaxis()方法的stack参数
3. 堆叠柱形图
堆叠柱形图的stack参数为布尔值,默认值为False。
🌍 通用设置
通用设置适用于大多数图表,分为:
全局设置
系列设置
其他设置
1. 全局配置
使用set_global_opts()方法进行全局设置,包括标题、图例、坐标轴、提示框等。
2. set_global_opts()常用参数
参数 说明
title_opts 标题设置
legend_opts 图例设置
xaxis_opts 坐标轴设置
tooltip_opts 提示框设置
datazoom_opts 区域缩放设置
3. 标题设置
python
Copy
obj.set_global_opts(
title_opts=opts.TitleOpts(title, subtitle)
)
4. 图例设置
python
Copy
obj.set_global_opts(
legend_opts=opts.LegendOpts(pos_left, orient)
)
5. 坐标轴设置
python
Copy
obj.set_global_opts(
xaxis_opts=opts.AxisOpts(),
yaxis_opts=opts.AxisOpts()
)
🎨 其他设置
1. 改变方向
使用reversal_axis()方法改变图表方向。
2. 改变颜色
使用set_colors()方法自定义颜色。
📈 散点图
1. 基本语法
使用Scatter模块绘制散点图:
python
Copy
scatter = Scatter()
scatter.add_xaxis(xaxis_data)
scatter.add_yaxis(series_name, y_axis)
2. 样式定义
散点图样式的自定义包括:
散点样式
添加区分
3. 散点样式
使用add_yaxis()方法的symbol和symbol_size参数定义散点形状和大小。
4. 添加区分
使用set_global_opts()方法结合visualmap_opts参数为散点图添加区分。
🥧 饼状图
1. 基本语法
使用Pie模块绘制饼状图:
python
Copy
pie = Pie()
pie.add(series_name, data_pair)
2. 样式定义
饼状图样式主要包括:
标签格式
圆环图
多饼图
3. 标签格式
使用set_series_opts()方法结合label_opts参数自定义标签格式。
4. 圆环图
使用add()方法的radius参数定义饼状图的内外半径。
5. 多饼图
调用多次add()方法,使用center参数控制每个饼状图的位置。
📦 箱线图
1. 基本语法
使用Boxplot模块绘制箱线图:
python
Copy
box = Boxplot()
box.add_xaxis(xaxis_data)
box.add_yaxis(series_name, y_axis)
2. 样式定义
箱线图样式自定义包括:
横向显示
改变颜色
📊 Pyecharts高级图表
教学重点
掌握Pyecharts高级图表的绘制
9.1 高级图表简介
在本章中,我们将介绍Pyecharts中的高级图表,主要包括以下四种:
K线图
水球图
日历图
词云图
9.2 K线图
1. 基本语法
K线图(蜡烛图)用于股市中显示四个指标:开盘价、收盘价、最低价、最高价。Pyecharts中使用Kline模块绘制K线图,语法如下:
python
Copy
k = Kline()
k.add_xaxis(xaxis_data)
k.add_yaxis(series_name, y_axis)
2. 实际案例
使用stock.csv文件中的股市数据绘制K线图。
9.3 水球图
1. 基本语法
在Pyecharts中,可以使用Liquid模块绘制水球图,适合展示单个百分比数据。语法如下:
python
Copy
lq = Liquid()
lq.add(series_name, data)
2. 样式定义
水球图的自定义样式主要包括三个方面:
水球形状
关闭动画
多水球图
(1)水球形状
使用add()方法的shape参数定义水球形状。可选取值如下:
取值 说明
circle 圆形
rect 矩形
triangle 三角形
diamond 钻石
pin 针形
arrow 箭头
(2)关闭动画
默认情况下,水球图有波浪动画。可以使用add()方法的is_animation参数来关闭动画,取值为布尔值(True或False)。
(3)多水球图
实现多水球图需要多次调用add()方法,使用center参数控制每个水球的位置,语法如下:
python
Copy
obj.add(
……
center=[x轴位置, y轴位置]
)
9.4 日历图
1. 基本语法
在Pyecharts中,使用Calendar模块绘制日历图,便于查看特定日期的数据。语法如下:
python
Copy
c = Calendar()
c.add(
series_name,
yaxis_data,
calendar_opts=opts.CalendarOpts(range_="年份")
)
2. 实际案例
使用steps.csv文件中的数据绘制日历图。
9.5 词云图
1. 基本语法
词云图用于突出频率较高的关键词,帮助用户快速了解文本重点。在Pyecharts中,使用WordCloud模块生成词云图,语法如下:
python
Copy
cloud = WordCloud()
cloud.add(series_name, data_pair)
2. 样式定义
词云图的自定义样式包括两个方面:
词云形状
字体大小
(1)词云形状
使用add()方法的shape参数定义词云图的形状。常用取值如下:
取值 说明
circle 圆形
rect 矩形
triangle 三角形
pentagon 五角形
star 星星形
diamond 钻石形
(2)字体大小
使用add()方法的word_size_range参数定义词云图的字体大小范围。语法如下:
python
Copy
cloud.add(
series_name="",
data_pair=data,
word_size_range=[10, 50]
)
# 📊 Pyecharts 数据可视化学习指南
## 🎯 教学重点
- **掌握如何模拟数据**
- **掌握如何保存图片**
- **了解其他可视化库**
## 10.1 模拟数据
在Pyecharts中,我们可以使用它自带的 **Faker** 库来生成模拟数据。使用模拟数据可以避免手动指定数据,从而方便学习Pyecharts的各种图表。
### 语法示例:
```python
from pyecharts.faker import Faker
10.2 保存图片
在Pyecharts中,我们可以将绘制的图表保存成一张图片。具体方式有以下三种:
保存方式 描述
使用 snapshot-selenium 通过 Selenium 库进行截图保存
使用 snapshot-phantomjs 通过 PhantomJS 库进行截图保存
右键保存 直接在图表上右键进行保存
10.3 更多内容
Pyecharts官方文档提供了详细的语法以及丰富的示例。如果想要更深入地了解Pyecharts,可以参考以下链接:
官方语法:Pyecharts 语法
官方实例:Pyecharts 实例
与 Web 框架结合
Pyecharts 可以与 Flask、Django 等 Web 框架结合使用,这是其强大的功能之一。不过,想要使用这些功能,首先需要学习这些框架。
10.4 其他可视化库
对于 Python 的其他可视化库,常用的有以下四种:
可视化库 描述 官方文档
ggplot 基于 R 语言的 ggplot2 和 Python 的可视化库,核心理念是将绘图与数据分离 ggplot 官方文档
Bokeh 基于 JavaScript 的交互可视化库,可以在浏览器中实现美观的视觉效果 Bokeh 官方文档
Pygal 矢量图表可视化库,使用面向对象的方式创建各种数据图表 Pygal 官方文档
Plotly 新一代的 Python 数据可视化库,通过构建基于 HTML 的交互式图表显示信息 Plotly 官方文档

2万+

被折叠的 条评论
为什么被折叠?



