Matploblib
一、初识Matploblib
Matplotlib是Python中的绘图库,类似于MATLAB,可以用来绘制各种静态,动态,交互式的图表。
1.1 Figure
在绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画布才能开始绘图。
1 | import matplotlib.pyplot as plt |
1.2 Axes
拥有Figure对象之后,我们还需要创建绘图区域,添加Axes。在绘制子图过程中,对于每一个子图可能有不同设置,而 Axes 可以直接实现对于单个子图的设定。figure、axes和axis(轴)的区别如下图所示。
1 | fig = plt.figure() |
以上的代码,在一幅图上添加了一个Axes,然后设置了这个Axes的X轴以及Y轴的取值范围(这些设置并不是强制的,后面会再谈到关于这些设置),效果如下图:
add_subplot(nrows, ncols, index, **kwargs)
说明:将整个Figure区域划分为$nrows * col$的网格,在索引号为index处创建一个Axes
我们要创建一个2*2的网格,参数和索引如下图所示:
代码如下:
1 | fig = plt.figure() |
可以发现我们上面添加 Axes 似乎有点弱鸡,所以提供了下面的subplots()方式一次性生成所有 Axes:
1 | fig, axes = plt.subplots(nrows=2, ncols=2) |
fig 还是我们熟悉的画板, axes 成了我们常用二维数组的形式访问,这在循环绘图时,额外好用。
1.3 设置画布大小
在使用matplotlib作图时,会遇到图片显示不全或者图片大小不是我们想要的,这个时候就需要调整画布大小。下例左图为500500像素,右图为10001000像素。
1 | import matplotlib.pyplot as plt |
1.4 plot()绘制线条
常用的调用方式
plt.plot()函数是我们平时绘图的时候最常用的另外一个函数之一,先放一下官网上的介绍,该函数的关键字参数不多,其中**kwargs是将可变的关键字参数字典传给函数实参,该字典长度可为任意长度*args和**kwargs介绍。
1 | matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs) |
最简洁的调用方式是直接传入一个数组对象y,其他参数都是可选的。如下:先创建一个服从正态分布的数据,共100个点,直接传入plot()。
1 | data = np.random.normal(5, 1, 100) |

当只传入绘制的数据列表时,默认数据作为Y轴值,而X轴的坐标则是由数据的下标组成的,共100个点对应X轴的100个坐标。plt.plot()肯定也支持自定义X轴坐标,只需要调用的时候传入两个大小相同的数组即可,X坐标在前,Y坐标在后。plt.plot()默认是将每个点通过直线连接起来,所以当点比较少的时候就呈现下左图,当点较多时就呈现下右图,看似是曲线。
1 | x = np.linspace(-np.pi, np.pi, 10) #x = np.linspace(-np.pi, np.pi, 100) |
关键字参数
格式fmt : 字符串str, [可选optional],定义线条的颜色和样式的操作
如“ro”就是红色的圆圈,更多组合参见官网列表,
1 | x = np.linspace(-np.pi, np.pi, 50) #x = np.linspace(-np.pi, np.pi, 100) |

注意上面这样每个点之间就不能连接起来了,plot()函数还定义了每个点之间的连接方式,如’-.’表示点画线、’-‘表示实线。
1 | x = np.linspace(-np.pi, np.pi, 50) #x = np.linspace(-np.pi, np.pi, 100) |
详细的标记如下面三个表所示。
| 标记character | 描述description | 标记character | 描述description |
|---|---|---|---|
| ‘o’ | 圆圈 | ‘.’ | 点 |
| ‘D’ | 菱形 | ‘s’ | 正方形 |
| ‘d’ | 小菱形 | ‘*’ | 星号 |
| ‘H’ | 六边形1 | ‘v’ | 一角朝下的三角形 |
| ‘h’ | 六边形2 | ‘<’ | 一角朝左的三角形 |
| ‘_’ | 水平线 | ‘>’ | 一角朝右的三角形 |
| ‘|’ | 竖线 | ‘^’ | 一角朝上的三角形 |
| ‘8’ | 八边形 | ‘+’ | 加号 |
| ‘p’ | 五边形 | ‘x’ | X |
| ‘,’ | 像素 | ‘None’, ‘’, ‘ ‘ | 无 |
| 线条风格 | 描述 | 线条风格 | 描述 |
|---|---|---|---|
| ‘-‘ | 实线 | ‘:’ | 虚线 |
| ‘–’ | 破折线 | ‘None’, ‘ ‘, ‘’ | 什么都不画 |
| ‘-.’ | 点划线 |
| 别名 | 颜色 | 别名 | 颜色 |
|---|---|---|---|
| B | 蓝色 | G | 绿色 |
| R | 红色 | Y | 黄色 |
| C | 青色 | K | 黑色 |
| M | 洋红色 | W | 白色 |
*各种属性*kwargs:Line2D properties
这个属性就相当之多了,借用官网一句话:kwargs are used to specify properties like a line label (for auto legends), linewidth, antialiasing, marker face color.就是说该参数主要用来指明绘线的一些属性,如标签、线宽、标记、背景颜色等。下面就介绍几个常用的properties,其他的可以去官网查。
1 | 第一个是label,表示标签,如图就是说画的线的标签,通过调用plt.legend()之后会显示出来; |






1.5 设置网格线
通过 axes 对象提供的 grid() 方法可以开启或者关闭画布中的网格以及网格的主/次刻度。除此之外,grid() 函数还可以设置网格的颜色、线型以及线宽等属性。
grid() 的函数使用格式如下:
1 | grid(color='b', ls = '-.', lw = 0.25) |
参数含义如下:
- color:表示网格线的颜色;
- ls:表示网格线的样式;
- lw:表示网格线的宽度;
网格在默认状态下是关闭的,通过调用上述函数,网格会被自动开启,如果只是想开启不带任何样式的网格,可以通过 grid(True) 来实现。
实例如下:
1 | import matplotlib.pyplot as plt |

1.6 设置坐标轴
set_xlabel 用字符串列表来设置坐标轴的标签,fontsize 设置轴标签的字体和字号等参数。
1 | import matplotlib.pyplot as plt |

Matplotlib 可以根据自变量与因变量的取值范围,自动设置 x 轴与 y 轴的数值大小。当然,您也可以用自定义的方式,通过 set_xlim() 和 set_ylim() 对 x、y 轴的数值范围进行设置。
1 | import matplotlib.pyplot as plt |

移动坐标轴以及为坐标轴添加箭头可以通过mpl_toolkits.axisartist实现,如下例所示。
1 | import numpy as np |

其中,创建坐标轴的方法有两种:
new_fixed_axis(self, loc, offset=None)和new_floating_axis(self, nth_coord, value, axis_direction=‘bottom’),而new_floating_axis()相对更加灵活。
(1)nth_coord:坐标轴方向,0代表X方向,1代表Y方向
(2)value:坐标轴处于位置,如果是平行与X轴的新坐标轴,则代表Y位置(即通过(0,value)),如果是平行与Y轴的新坐标轴,则代表X位置(即通过(value,0))。
(3)axis_direction:代表刻度标识字的方向,可选[‘top’, ‘bottom’, ‘left’, ‘right’]
1.7 设置刻度和标签
刻度指的是轴上数据点的标记,Matplotlib 能够自动的在 x 、y 轴上绘制出刻度。这一功能的实现得益于 Matplotlib 内置的刻度定位器和格式化器(两个内建类)。在大多数情况下,这两个内建类完全能够满足我们的绘图需求,但是在某些情况下,刻度标签或刻度也需要满足特定的要求,比如将刻度设置为“英文数字形式”或者“大写阿拉伯数字”,此时就需要对它们重新设置。
xticks() 和 yticks() 函数接受一个列表对象作为参数,列表中的元素表示对应数轴上要显示的刻度。如下所示:
1 | ax.set_xticks([2,4,6,8,10]) |
x 轴上的刻度标记,依次为 2,4,6,8,10。您也可以分别通过 set_xticklabels() 和 set_yticklabels() 函数设置与刻度线相对应的刻度标签。
下面示例介绍了刻度和标签的使用方法,其中对标签逆时针旋转了90°:
1 | import matplotlib.pyplot as plt |

1.8 添加图例和标题
图例通过ax.legend或者plt.legend()实现,标题通过ax.set_title()或者plt.title()实现,基本用法如下例所示。
1 | import matplotlib as mpl |

调整图例
对于图例,我们还可以通过改变legend()的参数来改变图例的显示位置,展示样式(包括图例的外边框、图例中的文本标签的排列位置和图例的投影效果等方面)。
1 | import matplotlib.pyplot as plt |

plt.legend()的位置参数loc也可以使用数字,其对应如下:
| 字符串 | 位置编号 | 位置表述 |
|---|---|---|
best |
0 | 最佳位置 |
upper right |
1 | 右上角 |
upper left |
2 | 左上角 |
lower left |
3 | 右下角 |
lower right |
4 | 左下角 |
right |
5 | 右侧 |
center left |
6 | 左侧垂直居中 |
center right |
7 | 右侧垂直居中 |
lower center |
8 | 下方水平居中 |
upper center |
9 | 上方水平居中 |
center |
10 | 正中间 |
此外还用到了线框位置参数bbox_to_anchor,它的参数值是一个四元元组,且使用Axes坐标系统。也就是说第一个元素代表距离画布左侧的x轴长度的倍速的距离;第二个元素代表距离画布底部的y轴长度的倍数的距离;第三个元素代表元素x轴长度的倍数的线框长度;第四个元素代表y轴长度的倍数的线框宽度。plt.legend(loc = “upper left”,bbox_to_anchor=(0.05,0.95),ncol = 3,title = “power function”,shadow=True,fancybox=True)会把图例放在上方左手边拐角处的距离坐标轴左边0.1,底部7.6的位置。关键字参数shadow控制线框是否添加阴影;fancybox控制线框是直角还是圆角。
调整标题
对于标题,也可以通过参数控制各种文本属性。
1 | import matplotlib.pyplot as plt |

上面展示了plt.title()中参数的两种使用方法。其中位置参数loc可以选择“left”,“center”和“right”。family控制的是字体类别,size控制字体大小,color控制字体颜色,style控制字体风格。
1.9 设置中文显示
Matplotlib 默认不支持中文字体,只支持 ASCII 字符,但中文标注更加符合中国人的阅读习惯。
当直接使用中文时,Matplotlib 绘制的图像会出现中文乱码,如左图所示。通过临时重写配置文件的方法,可以解决 Matplotlib 显示中文乱码的问题,代码如下所示:
1 | import matplotlib.pyplot as plt |


1.10 设置数学表达式显示
Matplotlib中的文本字符串都可以使用 Latex 格式显现出来,具体的使用方法是将文本标记符放在一对美元符号$内,语法格式如下:
1 | # 绘制表达式 r'$\alpha_i> \beta_i$' |

1.11 调整子图布局
在pyplot模块中,与调整子图布局的函数主要为subplots_adjust和tight_layout,其中subplots_adjust是修改子图间距的通用函数,tight_layout默认执行一种固定的间距配置,也可以自定义间距配置,底层原理类似于subplots_adjust函数。
subplots_adjust
subplots_adjust函数的功能为调整子图的布局参数。对于没有设置的参数保持不变,初始值由rcParams[“figure.subplot.[name]”]提供。
用法:matplotlib.pyplot.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
参数:
- left:所有子图整体相对于图像的左外边距,距离单位为图像宽度的比例(小数)。可选参数。浮点数。默认值为0.125。
- right:所有子图整体相对于图像的右外边距,距离单位为图像宽度的比例(小数)。可选参数。浮点数。默认值为0.0。
- bottom:所有子图整体相对于图像的下外边距,距离单位为图像高度的比例(小数)。可选参数。浮点数。默认值为0.11。
- top:所有子图整体相对于图像的上外边距,距离单位为图像高度的比例(小数)。可选参数。浮点数。默认值为0.88。
- wspace:子图间宽度内边距,距离单位为子图平均宽度的比例(小数)。浮点数。默认值为0.2。
- hspace:子图间高度内边距,距离单位为子图平均高度的比例(小数)。可选参数。浮点数。默认值为0.2。
示例代码如下:
1 | import matplotlib.pyplot as plt |
原始间距:
修改间距后(wspace=0.5, hspace=0.5):

tight_layout
pyplot模块中的tight_layout()函数可用于自动调整子图参数或按指定参数填充。通过设置rcParams[‘figure.autolayout’]=True可图像自动应用tight_layout。
用法: matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)
参数:
- pad:此参数用于在图形边和子图的边之间进行填充,以字体大小的一部分表示。
- h_pad,w_pad:这些参数用于相邻子图的边之间的填充(高度/宽度),作为字体大小的一部分。
- rect:此参数是整个子图区域将适合的归一化图形坐标中的矩形。
1.12 保存图片
使用savefig()函数可将图片保存在指定目录下,在show()前插入,如果在show()后面会出现保存图片为空白现象。
1 | plt.savefig("example.png") |
采用下面的方法可以保存去除旁边空白区域和坐标轴的图片,论文绘图时常用。
1 | pyplot.axis('off') #增加这行关闭坐标轴显示 |
二、常见绘图属性
2.1 绘图标记
绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。
以下实例定义了实心圆标记:
1 | import matplotlib.pyplot as plt |

marker 可以定义的符号如下:
以下实例定义了 * 标记:
1 | import matplotlib.pyplot as plt |

fmt 参数
fmt 参数定义了基本格式,如标记、线条样式和颜色。
1 | fmt = '[marker][line][color]' |
例如 o:r,o 表示实心圆标记,: 表示虚线,r 表示颜色为红色。
1 | import matplotlib.pyplot as plt |

线类型:
| 线类型标记 | 描述 |
|---|---|
| ‘-‘ | 实线 |
| ‘:’ | 虚线 |
| ‘–’ | 破折线 |
| ‘-.’ | 点划线 |
颜色类型:
| 颜色标记 | 描述 |
|---|---|
| ‘r’ | 红色 |
| ‘g’ | 绿色 |
| ‘b’ | 蓝色 |
| ‘c’ | 青色 |
| ‘m’ | 品红 |
| ‘y’ | 黄色 |
| ‘k’ | 黑色 |
| ‘w’ | 白色 |
详细颜色对照表

颜色及十六进制对应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 cnames = {
'aliceblue': '#F0F8FF',
'antiquewhite': '#FAEBD7',
'aqua': '#00FFFF',
'aquamarine': '#7FFFD4',
'azure': '#F0FFFF',
'beige': '#F5F5DC',
'bisque': '#FFE4C4',
'black': '#000000',
'blanchedalmond': '#FFEBCD',
'blue': '#0000FF',
'blueviolet': '#8A2BE2',
'brown': '#A52A2A',
'burlywood': '#DEB887',
'cadetblue': '#5F9EA0',
'chartreuse': '#7FFF00',
'chocolate': '#D2691E',
'coral': '#FF7F50',
'cornflowerblue': '#6495ED',
'cornsilk': '#FFF8DC',
'crimson': '#DC143C',
'cyan': '#00FFFF',
'darkblue': '#00008B',
'darkcyan': '#008B8B',
'darkgoldenrod': '#B8860B',
'darkgray': '#A9A9A9',
'darkgreen': '#006400',
'darkkhaki': '#BDB76B',
'darkmagenta': '#8B008B',
'darkolivegreen': '#556B2F',
'darkorange': '#FF8C00',
'darkorchid': '#9932CC',
'darkred': '#8B0000',
'darksalmon': '#E9967A',
'darkseagreen': '#8FBC8F',
'darkslateblue': '#483D8B',
'darkslategray': '#2F4F4F',
'darkturquoise': '#00CED1',
'darkviolet': '#9400D3',
'deeppink': '#FF1493',
'deepskyblue': '#00BFFF',
'dimgray': '#696969',
'dodgerblue': '#1E90FF',
'firebrick': '#B22222',
'floralwhite': '#FFFAF0',
'forestgreen': '#228B22',
'fuchsia': '#FF00FF',
'gainsboro': '#DCDCDC',
'ghostwhite': '#F8F8FF',
'gold': '#FFD700',
'goldenrod': '#DAA520',
'gray': '#808080',
'green': '#008000',
'greenyellow': '#ADFF2F',
'honeydew': '#F0FFF0',
'hotpink': '#FF69B4',
'indianred': '#CD5C5C',
'indigo': '#4B0082',
'ivory': '#FFFFF0',
'khaki': '#F0E68C',
'lavender': '#E6E6FA',
'lavenderblush': '#FFF0F5',
'lawngreen': '#7CFC00',
'lemonchiffon': '#FFFACD',
'lightblue': '#ADD8E6',
'lightcoral': '#F08080',
'lightcyan': '#E0FFFF',
'lightgoldenrodyellow': '#FAFAD2',
'lightgreen': '#90EE90',
'lightgray': '#D3D3D3',
'lightpink': '#FFB6C1',
'lightsalmon': '#FFA07A',
'lightseagreen': '#20B2AA',
'lightskyblue': '#87CEFA',
'lightslategray': '#778899',
'lightsteelblue': '#B0C4DE',
'lightyellow': '#FFFFE0',
'lime': '#00FF00',
'limegreen': '#32CD32',
'linen': '#FAF0E6',
'magenta': '#FF00FF',
'maroon': '#800000',
'mediumaquamarine': '#66CDAA',
'mediumblue': '#0000CD',
'mediumorchid': '#BA55D3',
'mediumpurple': '#9370DB',
'mediumseagreen': '#3CB371',
'mediumslateblue': '#7B68EE',
'mediumspringgreen': '#00FA9A',
'mediumturquoise': '#48D1CC',
'mediumvioletred': '#C71585',
'midnightblue': '#191970',
'mintcream': '#F5FFFA',
'mistyrose': '#FFE4E1',
'moccasin': '#FFE4B5',
'navajowhite': '#FFDEAD',
'navy': '#000080',
'oldlace': '#FDF5E6',
'olive': '#808000',
'olivedrab': '#6B8E23',
'orange': '#FFA500',
'orangered': '#FF4500',
'orchid': '#DA70D6',
'palegoldenrod': '#EEE8AA',
'palegreen': '#98FB98',
'paleturquoise': '#AFEEEE',
'palevioletred': '#DB7093',
'papayawhip': '#FFEFD5',
'peachpuff': '#FFDAB9',
'peru': '#CD853F',
'pink': '#FFC0CB',
'plum': '#DDA0DD',
'powderblue': '#B0E0E6',
'purple': '#800080',
'red': '#FF0000',
'rosybrown': '#BC8F8F',
'royalblue': '#4169E1',
'saddlebrown': '#8B4513',
'salmon': '#FA8072',
'sandybrown': '#FAA460',
'seagreen': '#2E8B57',
'seashell': '#FFF5EE',
'sienna': '#A0522D',
'silver': '#C0C0C0',
'skyblue': '#87CEEB',
'slateblue': '#6A5ACD',
'slategray': '#708090',
'snow': '#FFFAFA',
'springgreen': '#00FF7F',
'steelblue': '#4682B4',
'tan': '#D2B48C',
'teal': '#008080',
'thistle': '#D8BFD8',
'tomato': '#FF6347',
'turquoise': '#40E0D0',
'violet': '#EE82EE',
'wheat': '#F5DEB3',
'white': '#FFFFFF',
'whitesmoke': '#F5F5F5',
'yellow': '#FFFF00',
'yellowgreen': '#9ACD32'}
标记大小与颜色
我们可以自定义标记的大小与颜色,使用的参数分别是:
- markersize,简写为 ms:定义标记的大小。
- markerfacecolor,简写为 mfc:定义标记内部的颜色。
- markeredgecolor,简写为 mec:定义标记边框的颜色。
设置标记大小:
1 | import matplotlib.pyplot as plt |

设置标记外边框颜色:
1 | import matplotlib.pyplot as plt |

设置标记内部颜色:
1 | import matplotlib.pyplot as plt |

自定义标记内部与边框的颜色:
1 | import matplotlib.pyplot as plt |

2.2 Windows字体中英文名称对照
| 中文名称 | 英文名称 |
|---|---|
| 黑体 | SimHei |
| 微软雅黑 | Microsoft YaHei |
| 微软雅黑 | Microsoft YaHei |
| 新宋体 | NSimSun |
| 新细明体 | PMingLiU |
| 细明体 | MingLiU |
| 标楷体 | DFKai-SB |
| 仿宋 | FangSong |
| 楷体 | KaiTi |
| 仿宋_GB2312 | FangSong_GB2312 |
| 楷体_GB2312 | KaiTi_GB2312 |
三、基本绘图
3.1 折线图
plot()函数画出一系列的点,并且用线将它们连接起来。看下例子:
1 | import numpy as np |

在上面的三个Axes上作画。plot,前面两个参数为x轴、y轴数据。ax2的第三个参数是 MATLAB风格的绘图,对应ax3上的颜色,marker,线型。
另外,我们可以通过关键字参数的方式绘图,如下例:
1 | x = np.linspace(0, 10, 200) |

发现上面的作图,在数据部分只传入了字符串,这些字符串对一个这 data_obj 中的关键字,当以这种方式作画时,将会在传入给 data 中寻找对应关键字的数据来绘图。
3.2 散点图
只画点,不用线连接起来。
1 | import matplotlib.pyplot as plt |

3.3 双轴图
在一些应用场景中,有时需要绘制两个 x 轴或两个 y 轴,这样可以更直观地显现图像,从而获取更有效的数据。Matplotlib 提供的 twinx() 和 twiny() 函数,除了可以实现绘制双轴的功能外,还可以使用不同的单位来绘制曲线,比如一个轴绘制对函数,另外一个轴绘制指数函数。
下面示例绘制了一个具有两个 y 轴的图形,一个显示正弦函数 sin(x),另一个显示对数函数 log(x)。
1 | import matplotlib.pyplot as plt |

3.4 条形图
条形图分两种,一种是水平的,一种是垂直的,见下例子:
1 | import matplotlib.pyplot as plt |

条形图还返回了一个Artists 数组,对应着每个条形,例如上图 Artists 数组的大小为5,我们可以通过这些 Artists 对条形图的样式进行更改,如下例:
1 | fig, ax = plt.subplots() |

3.5 直方图
直方图用于统计数据出现的次数或者频率,有多种参数可以调整,见下例:
1 | import matplotlib.pyplot as plt |
参数中density控制Y轴是概率还是数量,与返回的第一个的变量对应。histtype控制着直方图的样式,默认是 ‘bar’,对于多个条形时就相邻的方式呈现如子图1, ‘barstacked’ 就是叠在一起,如子图2、3。 rwidth 控制着宽度,这样可以空出一些间隙,比较图2、3. 图4是只有一条数据时。
3.6 饼图
1 | import matplotlib.pyplot as plt |

3.7 箱形图
箱型图(也称为盒须图)于 1977 年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。
在箱型图中,我们从上四分位数到下四分位数绘制一个盒子,然后用一条垂直触须(形象地称为“盒须”)穿过盒子的中间。上垂线延伸至上边缘(最大值),下垂线延伸至下边缘(最小值)。箱型图结构如下所示:

首先准备创建箱型图所需数据:可以使用numpy.random.normal()函数来创建一组基于正态分布的随机数据,该函数有三个参数,分别是正态分布的平均值、标准差以及期望值的数量然后用 data_to_plot 变量指定创建箱型图所需的数据序列,最后用 boxplot() 函数绘制箱型图。
1 | import matplotlib.pyplot as plt |

3.8 泡泡图
散点图的一种,加入了第三个值 s 可以理解成普通散点,画的是二维,泡泡图体现了Z的大小,如下例:
1 | import matplotlib.pyplot as plt |

3.9 等高线图(轮廓图)
等高线图(也称“水平图”)是一种在二维平面上显示 3D 图像的方法。等高线有时也被称为 “Z 切片”,如果您想要查看因变量 Z 与自变量 X、Y 之间的函数图像变化(即 Z=f(X,Y)),那么采用等高线图最为直观。
1 | import numpy as np |
