1 pylot介绍
pylot是Matplotlib中的一个库,用于绘制各类图画的命令子库
导入方式:
import matplotlib.pyplot as plt
2 图像的读取、绘制、显示、保存
2.1 figure():用来打开输出窗口
标准函数格式:
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
参数说明:
num 用来指定图像编号或者名称。如 num='my_figure' 就是将图像的名称设为 my_figure 。figsize 的作用是指定图像的宽和高,单位为英寸。如 figsize=(6, 8) 就是指定图像的大小为宽6英寸,长8英寸。dpi 的作用是指定绘图对象的分辨率,dpi 越高分辨率越高,默认 dpi 为80。如 dpi=100 就是将图像的 dpi 设置为100.facecolor 用来指定背景颜色。如 facecolor=black 就是将背景颜色设为黑色。edgecolor 用来指定边框颜色。如 edgecolor=black frameon 则表示是否显示边框。frameon 为 True 则显示,为 False 则不显示。
2.2 show()/imshow():显示图像
在使用 figure() 建立图像后通常都需要调用函数 show() ,这是因为调用 figure() 建立的图像是储存在内存中的,如果不调用 show() 函数将可能导致图像无法正确的被显示出来。
imshow 不仅可以显示图像,还可以显示其格式;show() 则仅会显示图像。
plt.imshow() 函数负责对图像进行处理,并显示其格式。 plt.show() 则是将plt.imshow()处理后的函数显示出来。
调用方法:
plt.imshow()
plt.show()
2.3 plot():绘制函数
用来在 2D 平面上绘制点和线
函数格式:
plt.plot(x, y, scalex=True, scaley=True, data=None)
参数说明:
x 和 y 分别是数据的横坐标和纵坐标。x 和 y 可以传入多种数据结构,包括元组,列表,np.array 和 pd.Series。 1.绘制颜色
当我们想要将多种数据绘制在同一张图像中时,一个最基本的方法就是用不同的颜色来区分这些数据。在 plot() 中,输出的颜色通过颜色字符控制:
颜色字符 | 说明 | 颜色字符 | 说明 |
---|
‘b’ | 蓝色 | ‘m’ | 洋红色 | ‘g’ | 绿色 | ‘y’ | 黄色 | ‘r’ | 红色 | ‘k’ | 黑色 | ‘c’ | 青绿色 | ‘w’ | 白色 | ‘#000000’ | RGB色彩,这里是黑色 | ‘0.8’ | 灰度计数 |
2. 风格字符
另一种划分数据的方式是使用不同风格的线条。改变线条的风格可以通过风格字符实现:
风格字符 | 说明 |
---|
‘-’ | 实线 | ‘–’ | 破折线 | ‘-.’ | 点划线 | ‘:’ | 虚线 | ‘’ ‘’ | 无线条 |
3. 标记字符
有时候我们希望看到数据点在原图中的位置。此时我们就可以通过设定标记字符来绘制数据点。
标记字符 | 说明 | 标记字符 | 说明 |
---|
‘.’ | 点标记 | ‘4’ | 右花三角标记 | ‘,’ | 极小点标记(像素) | ‘s’ | 实心方形标记 | ‘o’ | 实心圈标记 | ‘p’ | 实心五角标记 | ‘v’ | 倒三角标记 | ‘*’ | 星形标记 | ‘^’ | 上三角标记 | ‘h’ | 竖六边形标记 | ‘>’ | 右三角标记 | ‘H’ | 横六边形标记 | ‘<’ | 左三角标记 | ‘+’ | 十字标记 | ‘1’ | 下花三角标记 | ‘x’ | x标记 | ‘2’ | 上花三角标记 | ‘D’ | 菱形标记 | ‘3’ | 左花三角标记 | ‘d’ | 瘦菱形标记 | ‘|’ | 垂直线标记 | | |
4. 复合控制字符:
2.4 imread():从外部读取图像
函数格式:
plt.imread(fname, format=None)
参数说明:
fname :设定要读取的图像文件的路径和名称。例如 fname = 'D:\local\test_img.png' 意味着我们将读取路径 D:\local\ 下格式为 png 的图像文件 test_img。format :设定读取数据的图像文件格式。如果为 None ,则将从文件名中获取。test_img.png 意味着图片是以 png 格式储存的。
**注意:**如果想要在后续的流程中使用读取的图像,imread() 读取出来的数据需要被储存在某个变量中。imread() 读取出来的图像数据将被储存为 numpy.array 格式。
2.5 savefig():保存图像
函数格式:
plt.savefig(fname, dpi=None, facecolor='w', edgecolor='w')
参数说明:
fname :指定保存的文件名。例如当 fname 的值为 ‘my_img’ 时保存好的图像文件的名称就是 ‘my_img’。dpi :指定输出文件的分辨率,默认和原图像保持一致。facecolor 用来指定背景颜色。如 facecolor=black 就是将背景颜色设为黑色。edgecolor 用来指定边框颜色。如 edgecolor=black
**注意:**运行 savefig() 函数后图像将被保存在当前程序的运行目录下。
2.6 subplot()/subplots():显示多张图片
显示多张图片的两种方法:
函数格式:
plt.subplot(nrows=1, ncols=1, index=1, **fig_kw)
plt.subplots(nrows=1, ncols=1, **fig_kw)
参数说明:
nrows 的作用是设定图像的总行数。ncols 的作用是设定图像的总列数。index 的作用是索引到某个具体的图像。这里需要注意我们的图像按照 从左往右,从上往下 的顺序从 1 开始排列。
注意:subplot() 和 subplots() 会返回两个组件:绘图区域 fig ,以及坐标轴等组件 ax 。通常来说我们可以不用分开读取这两个部分,不过当有需要对其中的一部分进行设置的时候我们可以通过如下方式进行读取:
[in]: fig, ax = subplot(1,1)
[in]: figs, axes = subplots(2,3)
一般对某一个图像会用 fig 和 ax 这样的变量储存,多个图像会用 figs 和 axes 来储存。
去除上图中所有的刻度,可以通过 xticks([]) 和 yticks([]) 实现:
3 图像组件
3.1 刻度范围
plt.xlim() 和 plt.ylim() 或者ax.set_xlim() 和 ax.set_ylim() 对坐标轴的刻度范围进行限制。
两种方法将数据放在更大范围的图标中显示
方法一:ax.set_xlim([0, 20])
在 ax 里面进行操作的时候使用的命令是 set_xlim 和 set_ylim 。
方法二:plt.xlim([0, 20])
3.2 刻度划分
通过 plt.xticks() 和 plt.yticks() 或者 ax.set_xticks() 和 ax.set_yticks() 来对坐标轴上的刻度进行编辑。
注意:
- 刻度不一定可以铺满整个坐标轴,如果无法铺满则剩下的部分不会显示刻度;
range() 函数无法生成浮点数,因此如果刻度需要出现小数最好使用第二种方法输入刻度;- 设置刻度时无法显示最后一个刻度,因此如果需要显示最后一个刻度最好多生成一个刻度
3.3 显示刻度标签
通过 ax.set_xticklabels() 和 ax.set_yticklabels() 设置每个刻度对应的标签。
3.4 坐标轴标签或标题
通过 ax.set_xlabel() 和 ax.set_ylabel() 或者 plt.xlabel() 和 plt.ylabel() 来实现。
4 绘图函数
4.1 饼状图: plt.pie()
通过扇形的圆心角度数来表示某类数据占总数据的百分比。
函数格式:
pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)
参数说明:
x : 输入数据explode : 某个 label 的突出程度labels : 每一类数据的标签colors : 每一类数据的颜色
4.2 直方图:plt.hist()
可以很好的展示数据分布情况的图表。通常用横轴表示数据范围,纵轴表示分布情况。正态分布通常就是以直方图的形式展示出来。
函数格式:
hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
参数说明:
x : 输入数据bins : 直方图的长条形数量histtype : 直方图类型,包括 ‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
4.3 柱状图:plt.bar()
柱状图又被称之为条形图,是一种非常常用的图表。柱状图可以很好的比较各类数据之间的大小关系。
函数格式:
bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数说明:
-
x : 表示x坐标,数据类型为int或float类型,刻度自适应调整;也可传dataframe的object,x轴上等间距排列; -
height : 表示柱状图的高度,也就是y坐标值,数据类型为int或float类型; -
width : 表示柱状图的宽度,取值在0~1之间,默认为0.8; -
label : 额外参数,用来指定每种数据的标签,后续可以生成图例 -
align :柱状图的中心位置,默认"center"居中,可设置为"lege"边缘; -
bottom :柱状图的起始位置,也就是y轴的起始坐标; -
color : 额外参数,用来指定柱的颜色 -
tick_label :下标标签;
4.4 水平柱状图:barh()
常见的柱状图 X 轴水平,Y 轴垂直。有时候我们需要将两个轴反过来,这时候就可以使用 plt.barh() 函数绘制水平柱状图。
函数的格式:
barh(y, width, height=0.8, left=None, *, align='center', **kwargs)
参数说明:
y : 表示y坐标,数据类型为int或float类型,刻度自适应调整;也可传dataframe的object,y轴上等间距排列;height : 表示柱状图的宽度,也就是x坐标值,数据类型为int或float类型;width : 表示柱状图的水平长度,取值在0~1之间,默认为0.8;label : 额外参数,用来指定每种数据的标签,后续可以生成图例color : 额外参数,用来指定柱的颜色
4.5 堆叠柱状图:plt.bar()
堆叠柱状图也是通过 plt.bar() 进行绘制,通过 bottom 参数指定某一个类别的柱的基底,从而实现柱的堆叠。
函数格式:
bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数说明:
-
x : 表示x坐标,数据类型为int或float类型,刻度自适应调整;也可传dataframe的object,x轴上等间距排列; -
height : 表示柱状图的高度,也就是y坐标值,数据类型为int或float类型; -
width : 表示柱状图的宽度,取值在0~1之间,默认为0.8; -
label : 额外参数,用来指定每种数据的标签,后续可以生成图例 -
align :柱状图的中心位置,默认"center"居中,可设置为"lege"边缘; -
bottom :柱状图的起始位置,也就是y轴的起始坐标; -
color : 额外参数,用来指定柱的颜色 -
tick_label :下标标签;
4.6 散点图:plt.scatter()
散点图指通过对应坐标确定位置并绘制坐标点的图表。
函数格式:
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数说明:
x : 数据点的横坐标y : 数据点的纵坐标s : 数据点的大小c : 数据点的颜色marker : 数据点的样式
|