数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Matplotlib—数据可视化高级—多图布局(1)(五)

简介: 你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,

2.数据可视化高级

2.1 多图布局

2.1.1 子视图

🚩创建子视图可以一个视图一个视图的创建,也可以多个视图一起创建:

单图创建:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi)
# 创建子视图:2行1列第1个视图
ax = plt.subplot(2, 1, 1)
ax.plot(x, np.sin(x))
# 创建子视图:2行1列第2个视图
ax = plt.subplot(2, 1, 2)
ax.plot(x, np.cos(x))

image.png

多图一起创建:

# 一次创造多个视图
fig, axes = plt.subplots(2, 2) # 2行2列:四个图
# 索引从0开始
axes[0, 0].plot(x, np.sin(x), color = 'red')
axes[0, 1].plot(x, np.sin(x), color = 'green')
axes[1, 0].plot(x, np.cos(x), color = 'purple')
axes[1, 1].plot(x, np.cos(x))

image.png

下面附上一个完整的代码供读者理解:

遇到无法理解的地方可以看后面的代码解释,还是不理解的地方可以评论区留言(有问必答)

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)
# 子视图1
plt.figure(figsize = (9, 6))
ax = plt.subplot(221) # 两行两列第一个子视图
ax.plot(x, y, color = 'red')
ax.set_facecolor('green') # 调用子视图设置方法,设置子视图整体属性
# 子视图2
ax = plt.subplot(2, 2, 2) # 两行两列第二个子视图
line, = ax.plot(x, -y) # 返回绘制对象
line.set_marker('*') # 调用对象设置方法,设置属性
line.set_markerfacecolor('red')
line.set_markeredgecolor('green')
line.set_markersize(10)
# 子视图3
ax = plt.subplot(2, 1, 2) # 两行一列第二行视图
plt.sca(ax) # 设置当前视图
x = np.linspace(-np.pi, np.pi, 200)
plt.plot(x, np.sin(x * x), color = 'red')

24.png

对上述代码的部分进行讲解:

# 第15行
# line, = ax.plot(x, -y) # 返回绘制对象
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)
# 子视图1
plt.figure(figsize = (9, 6))
ax = plt.subplot(221) # 两行两列第一个子视图
ax.plot(x, y, color = 'red')
ax.set_facecolor('green') # 调用子视图设置方法,设置子视图整体属性
# 子视图2
ax = plt.subplot(2, 2, 2) # 两行两列第二个子视图
ax.plot(x, -y) # 返回绘制对象

image.png

ax.plot(x, -y)其实就是返回了一句话:[<matplotlib.lines.Line2D at 0x1914fb1d250>]

我们可以发现这句话使用的是列表,我们取出这句话可以用:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)
# 子视图1
plt.figure(figsize = (9, 6))
ax = plt.subplot(221) # 两行两列第一个子视图
ax.plot(x, y, color = 'red')
ax.set_facecolor('green') # 调用子视图设置方法,设置子视图整体属性
# 子视图2
ax = plt.subplot(2, 2, 2) # 两行两列第二个子视图
line = ax.plot(x, -y) # 返回绘制对象
line[0]

image.png

我们也可以使用 , 去取:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)
# 子视图1
plt.figure(figsize = (9, 6))
ax = plt.subplot(221) # 两行两列第一个子视图
ax.plot(x, y, color = 'red')
ax.set_facecolor('green') # 调用子视图设置方法,设置子视图整体属性
# 子视图2
ax = plt.subplot(2, 2, 2) # 两行两列第二个子视图
line, = ax.plot(x, -y) # 返回绘制对象
line

25.png

还有一个很容易晕掉的细节:就是我们在绘图的时候几行几列第几个是什么意识:

我们就拿上述代码去说明:

我们假想有一块空白的板子是供我们绘图的,下面来看上述代码:

ax = plt.subplot(221) # 两行两列第一个子视图

这行代码的意思是把我们假想的这块白板,划分称为两行两列的板子:

26.png

然后这个图片占据的是第一个板子的位置,对于板子位置我们有如下规定:

板子的编号从1开始,而非从0开始,从左至右,从上至下依次命名板子

所以对上面这个板子,板子的编号为:

27.png

所以我们最后图像所显示的其实就是左上角的位置。

接着来看我们的第二个图:

ax = plt.subplot(2, 2, 2) # 两行两列第二个子视图

这下就好理解啦,还是把之前的空白板子分成两行两列,然后编号为2,即右上角。

接着我们来看第三个图:

ax = plt.subplot(2, 1, 2) # 两行一列第二行视图

把我们的空白板子分成两行一列,那么就是下图的形式:

28.png

然后我们把第三个图片放到第二个位置,不难想到,该图的第二个位置其实就是对应的我们分成两行两列的 3,4 位置,所以三个图像最终绘制的结果就是:

image.png

2.1.2 嵌套

🚩所谓嵌套,其实就是在图形中继续画图:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 25)
y = np.sin(x)
fig = plt.figure(figsize = (9, 6)) # 创建视图
plt.plot(x,y)
# 嵌套方式一,axes轴域(横纵坐标范围),子视图
# x,y,width,height
ax = plt.axes([0.2, 0.55, 0.3, 0.3]) # 参数含义[left, bottom, width, height]
ax.plot(x, y, color = 'g')
# 嵌套方式二
ax = fig.add_axes([0.55, 0.2, 0.3, 0.3]) # 使用视图对象添加子视图
ax.plot(x, y, color = 'r')

29.png



目录
相关文章
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
495 1
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
362 10
|
数据可视化 数据挖掘 Python
逆袭之路!Python数据分析新手如何快速掌握Matplotlib、Seaborn,让数据说话更响亮?
在数据驱动时代,掌握数据分析技能至关重要。对于Python新手而言,Matplotlib和Seaborn是数据可视化的两大利器。Matplotlib是最基本的可视化库,适合绘制基础图表;Seaborn则提供高层次接口,专注于统计图形和美观样式。建议先学Matplotlib再过渡到Seaborn。快速上手Matplotlib需多实践,示例代码展示了绘制折线图的方法。Seaborn特色功能包括分布图、关系图及分类数据可视化,并提供多种主题和颜色方案。两者结合可实现复杂数据可视化,先用Seaborn绘制统计图,再用Matplotlib进行细节调整。熟练掌握这两者,将显著提升你的数据分析能力。
315 4
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
412 4
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
447 2
|
数据可视化 数据挖掘 Python
告别枯燥数字,拥抱视觉盛宴!Python 数据分析中的数据可视化艺术,你 get 了吗?
在数据驱动时代,数据分析至关重要,但单纯依赖数据表格难以揭示其背后的洞见。这时,数据可视化便彰显出其重要性,尤其借助 Python 的强大工具如 Matplotlib、Seaborn 和 Plotly 等,可将数据转化为直观的图形。Matplotlib 提供高度定制的图表,Seaborn 则简化了图表美化过程。通过折线图、散点图、箱线图、小提琴图及热力图等多种图表形式,我们可以更深入地理解数据分布与关系,有效传达信息并支持决策制定。数据可视化不仅是一门技术,更是讲述数据故事的艺术。
296 3
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
1276 4
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
446 2
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
736 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
2075 4
数据分析的 10 个最佳 Python 库