matplotlib绘图的核心原理讲解(超详细)(二)

简介: matplotlib绘图的核心原理讲解(超详细)(二)

3、创建figure(画布)的两种方式

1)绘制一个最简单的折线图

import matplotlib as mpl
import matplotlib.pyplot as plt
x = [1,3,5,7]
y = [4,9,6,8]
plt.plot(x,y)
plt.show()


结果如下:

image.png

结果分析:

 在前面的叙述中,我们已经说过,想要使用matplotlib绘图,必须先要创建一个figure(画布)对象,然后还要有axes(坐标系)。但是观察上述代码,我们并没有创建figure对象,那么怎么又可以画图呢?

 对于上述疑问,接下来我们就要讲述创建figure(画布)的两种方式。

 


2)创建figure(画布)的两种方式

隐式创建

显示创建

① 隐式创建figure对象

 当第一次执行plt.xxx()这句绘图代码时,系统会去判断是否已经有了figure对象,如果没有,系统会自动创建一个figure对象,并且在这个figure之上,自动创建一个axes坐标系(注意:默认创建一个figure对象,一个axes坐标系)。

 也就是说,如果我们不设置figure对象,那么一个figure对象上,只能有一个axes坐标系,即我们只能绘制一个图形。

 


② 隐式创建figure对象存在的问题

 优势:如果只是绘制一个小图形,那么直接使用plt.xxx()的方式,会自动帮我们创建一个figure对象和一个axes坐标系,这个图形最终就是绘制在这个axes坐标系之上的。

 劣势:如果我们想要在一个figure对象上,绘制多个图形,那么我们就必须拿到每个axes对象,然后调用每个位置上的axes对象,就可以在每个对应位置的坐标系上,进行绘图,如下图所示。注意:如果figure对象是被默认创建的,那么我们根本拿不到axes对象。因此,需要我们显示创建figure对象。

image.png


③ 显示创建figure对象:以后的文章会详细讲述布局设置

# 手动创建一个figure对象
figure = plt.figure()
# 获取每个位置的axes对象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)


如图所示:

image.png

举例说明:


figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
figure.show()


结果如下:

image.png


4、完整的绘图步骤

① 导库

import matplotlib as mpl
import matplotlib.pyplot as plt


② 创建figure画布对象

   如果绘制一个简单的小图形,我们可以不设置figure对象,使用默认创建的figure对象,

如果绘制一个简单的小图形,我们可以不设置figure对象,使用默认创建的figure对象,
当然我们也可以显示创建figure对象。
    如果一张figure画布上,需要绘制多个图形。那么就必须显示的创建figure对象,然后
得到每个位置上的axes对象,进行对应位置上的图形绘制。


③ 根据figure对象进行布局设置

1*1
1*2
2*1
2*2
...


④ 获取对应位置的axes坐标系对象

figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,1)


⑤ 调用axes对象,进行对应位置的图形绘制

 

这一步,是我们传入数据,进行绘图的一步。对于图形的一些细节设置,都可以在这一步进行


⑥ 显示图形

 

plt.show()或figure.show()
    如果在pycharm中绘图的话,必须要加这句代码,才能显示。如果在notebook中进行绘图,
可以不用加这句代码,而是自动显示。


5、绘图技巧(细节设置)

* figure 画布
* axes 坐标系,一个画布上可以有多个坐标系
* axis 坐标轴,一个坐标系中可以有多个坐标轴,一般都是二维平面坐标系,或者三维立体坐标系
* title 标题
* legend 图例
* grid 背景网格
* tick 刻度
* axis label 坐标轴名称
* tick label 刻度名称
    * major tick label 主刻度标签
    * minor tick label 副刻度标签
* line 线
* style 线条样式
* marker 点标记
* font 字体相关


 通过对matplotlib绘图的原理,有所了解之后,我们需要学习的就是常见的matplotlib绘图技巧,常见的绘图技巧如上所示,这些绘图技巧都能够很好的帮助我们画出更美观、更直观的图形。下一节,我将会讲述matplotlib绘图技巧(千万不要错过)。


相关文章
|
26天前
|
Python
Matplotlib 绘图标记
Matplotlib 绘图标记
29 2
|
3月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 9
在本教程中,我们将探讨如何使用 Matplotlib 的 `plot()` 方法中的 `marker` 参数来自定义图表标记。您可以选择不同的线类型(如实线 `'-'`、虚线 `':'` 等),以及颜色类型(如红色 `'r'`、绿色 `'g'` 等)。同时,通过调整 `markersize (ms)`、`markerfacecolor (mfc)` 和 `markeredgecolor (mec)` 参数,可以定制标记的大小和颜色。
34 1
|
3月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 3
这段Matplotlib教程展示了如何通过`plot()`方法的`marker`参数来自定义图表标记,为数据点添加独特的视觉风格。例如,通过设置`marker = '*'`,可以使每个数据点显示为星形标记。这在需要对坐标轴进行特殊标注时尤为有用。下面的示例代码生成了一个带有星形标记的简单折线图。
41 2
|
3月前
|
搜索推荐 数据可视化 Python
Matplotlib 教程 之 Matplotlib 绘图标记 4
本教程介绍如何使用 Matplotlib 的 `plot()` 方法中的 `marker` 参数来自定义图表标记,使你的数据可视化更加直观和个性化。通过实例演示了如何设置下箭头作为数据点标记。
26 1
|
3月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 8
在 Matplotlib 中,可以通过 `plot()` 方法的 `marker` 参数自定义图表标记。此外,还可以设置线类型(如 `'-'` 实线、`':'` 虚线等)和颜色(如 `'r'` 红色、`'g'` 绿色等)。使用 `markersize` (`ms`) 定义大小,`markerfacecolor` (`mfc`) 和 `markeredgecolor` (`mec`) 分别定义标记的内部和边框颜色。
37 0
|
3月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 绘图标记 6
在本教程中,我们将探讨如何利用 Matplotlib 的 `plot()` 方法中的 `marker` 参数来自定义图表标记,以增强数据可视化效果。此外,还介绍了线类型(如实线 `'-'`、虚线 `':'` 等)、颜色类型(如红色 `'r'`、绿色 `'g'` 等)以及如何通过 `markersize` (`ms`)、`markerfacecolor` (`mfc`) 和 `markeredgecolor` (`mec`) 来调整标记的大小和颜色。通过一个示例展示了如何设置标记大小。
35 0
|
3月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 5
使用 Matplotlib 的 `plot()` 方法通过 `marker` 参数来自定义图表标记,同时解释了如何利用 `fmt` 参数定义标记、线条样式及颜色,例如 'o:r' 分别表示实心圆标记、虚线及红色。并通过一个实例演示了其使用方法。
30 0
|
3月前
|
数据可视化 数据处理 Python
Matplotlib:Python绘图利器之王
Matplotlib:Python绘图利器之王
25 0
|
3月前
|
Python
Matplotlib 教程 之 Matplotlib 绘图标记 2
在 Matplotlib 中使用 `plot()` 方法的 `marker` 参数来自定义图表标记。通过不同符号如 `"o"`(实心圆)、`"v"`(下三角)等,可实现多样化的标记效果。示例展示了实心圆标记的使用方法,提供了多种标记符号供选择,包括几何形状和特殊符号。
68 0
|
4月前
|
Python
​16个matplotlib绘图实用小技巧
​16个matplotlib绘图实用小技巧