数据分析三剑客【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



目录
相关文章
|
10天前
|
Python
【随手记】贴一段matplotlib绘图的多图拼接代码
【随手记】贴一段matplotlib绘图的多图拼接代码
27 1
|
16天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
1月前
|
数据可视化 数据挖掘 C++
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
|
1月前
|
Python
Python 的科学计算和数据分析: 如何使用 Matplotlib 绘制图表?
Matplotlib是Python的绘图库,用于创建图表。基本步骤包括:导入库(`import matplotlib.pyplot as plt`),准备数据(如`x = [1, 2, 3, 4, 5]`, `y = [2, 4, 6, 8, 10]`),创建图表对象(`fig, ax = plt.subplots()`),绘制图表(`ax.plot(x, y)`),设置标题和标签(`ax.set_title()`, `ax.set_xlabel()`, `ax.set_ylabel()`),最后显示图表(`plt.show()`)。完整示例代码展示了如何绘制一个简单的折线图。
34 5
|
1月前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title(&#39;简单折线图&#39;) plt.xlabel(&#39;X轴&#39;) plt.ylabel(&#39;Y轴&#39;) plt.show() ```
17 1
|
1月前
|
数据可视化 前端开发 数据挖掘
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
176 0
|
1月前
|
存储 数据可视化 数据挖掘
数据分析与可视化:Pandas与Matplotlib/Seaborn的完美结合
【4月更文挑战第16天】本文探讨了Python中的Pandas、Matplotlib和Seaborn如何协同进行数据分析与可视化。Pandas提供高效的数据结构DataFrame,便于数据处理和清洗;Matplotlib是基础绘图库,支持自定义图表;Seaborn则在Matplotlib基础上提供美观的统计图形。通过这三个库的无缝结合,数据分析师可以从数据处理直达可视化,提高效率并呈现更具吸引力的分析结果。掌握这些工具将助力深入理解数据并揭示其中的故事。
|
1月前
|
数据可视化 数据挖掘 API
Python数据分析中的数据可视化:Matplotlib与Seaborn的比较
在Python数据分析领域,数据可视化是至关重要的一环。本文将深入探讨两大流行的数据可视化库Matplotlib与Seaborn的异同,帮助读者更好地选择适合自身需求的工具。
|
1月前
|
数据采集 存储 数据可视化
python数据分析——数据可视化(图形绘制基础)
为了绘制好数据可视化图形,需要掌握数据分析的基础知识,例如数据类型、数据预处理、统计方法等。同时,还需要了解绘图工具的使用,例如Excel、Tableau、Python中的Matplotlib和Seaborn等。掌握数据可视化的基础知识和工具,可以帮助我们更好地理解数据和数据之间的关系,从而做出更加准确的决策和预测。
126 1
|
1月前
|
数据可视化 数据挖掘 大数据
Python数据分析中的数据可视化技术应用
数据可视化是数据分析中至关重要的一环,能够帮助分析师和决策者更直观地理解数据。本文将介绍Python数据分析中常用的数据可视化技术,包括Matplotlib、Seaborn和Plotly,并结合实际案例演示它们在数据分析中的应用。

热门文章

最新文章