一、图形函数
函数名称 | 描述 |
---|---|
Bar | 绘制条形图 |
Barh | 绘制水平条形图 |
Boxplot | 绘制箱型图 |
Hist | 绘制直方图 |
his2d | 绘制2D直方图 |
Pie | 绘制饼状图 |
Plot | 在坐标轴上画线或者标记 |
Polar | 绘制极坐标图 |
Scatter | 绘制x与y的散点图 |
Stackplot | 绘制堆叠图 |
Stem | 用来绘制二维离散数据绘制(又称为火柴图) |
Step | 绘制阶梯图 |
Quiver | 绘制一个二维按箭头 |
二、功能函数
函数名称 | 描述 |
---|---|
Figtext | 在画布上添加文本 |
Figure | 创建一个新画布 |
Show | 显示数字 |
Savefig | 保存当前画布 |
Close | 关闭画布窗口 |
三、图形位置函数
1、figure
设置画布,控制图形位置
figsize:指定画布的大小,(宽度,高度),单位为英寸
dpi:指定绘图对象的分辨率,即每英寸多少个像素,默认值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
fig = pylab.figure(figsize=(10, 10), facecolor='g', edgecolor='r', frameon=True)
2、figure.add_axes
定义数据轴,根据数据轴锁定图像显示区域;
[left, bottom, width, height]:
left 和 bottom 是轴域左下角的坐标,范围从 0 到 1。
width 和 height 是轴域的宽度和高度,范围从 0 到 1。
ax1 = fig.add_axes([0.1, 0.1, 0.4, 0.4]) ax2 = fig.add_axes([0.5, 0.5, 0.4, 0.4])
3、axes.legend
添加图例,自动显示每条线或数据集的标签;。
labels 若在图形生成中设置了,在这里面无需设置labels,若无则 labels =["标签1,'标签2'],若无括号,就自动拆分字符串。
loc 指定标签显示在轴域的位置
handles 不填默认此轴域内的所有图形,单个填写时 handles = 图形,多个则 handles =[图形1,图形2]
ax1.legend( loc='upper right', labels=['x^2', 'x'])
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 |
4、add_subplot
fig.add_subplot(nrows, ncols, index);将画布分为多块区域,图形根据index放入指定位置
ax1 = fig.add_subplot(2, 2, 1) 表示将画布分为两行两列的四个区域,此图为第一个区域(类似第二象限)
ax2 = fig.add_subplot(2, 2, 3) 表示将画布分为两行两列的四个区域,此图为第三个区域(类似第三象限)
5、subplots
格式:fig, axs = plt.subplots(nrows, ncols, figsize=(width, height))
subplot 是根据大小锁定在画布的某块区域,需要一个个确定图形的区域,当设置的区域格式不一致时,图形大小也随着变化导致看上去怪异。
subplots 直接将画布分割成 nrows *ncols 的矩形区域,在创建图形时直接通过行索引和列索引确定位置。
fig, axs = plt.subplots(2, 3, figsize=(18, 8)) 将画布分割成两行三列的六块区域。
axs[0, 0].plot(x, y1, label='sin(x)') #生成图像在第一块区域
axs[1, 2].plot(x, y3, label='tan(x)') #生成图像在第六块区域
6、subplot2gird
格式:ax = plt.subplot2grid(shape, loc, rowspan=1, colspan=1)
shape: 网格的形状,格式为 (rows, cols),表示网格的行数和列数,在figure中式全局设置。
loc: 子图的起始位置,格式为 (row, col),表示子图在网格中的起始行和列。
rowspan: 子图占据的行数,默认为 1。
colspan: 子图占据的列数,默认为 1。
ax1 = plt.subplot2grid((3, 3), (0, 0)) #表示占据三行三列,从原点出发的图像
ax4 = plt.subplot2grid((2, 2), (1, 1)) #表示占据两行两列,从第二行第二列的交织点出发的图像
7、grid
根据横轴和纵轴的值生成网格。
8、xscale 和 yscale
坐标轴默认根据数据情况(一般为整数或小数数值)设置刻度,可以使用 xscale 修改 横坐标 刻度, yscale 修改 纵坐标 刻度。
ax1.set_xscale('log') ax1.set_yscale('log')
9、set_xlim 和 set_ylim
调整坐标轴的取值范围;格式:ax.set_xlim(left, right) 、ax.set_ylim(bottom, top)
left 和 right:X 轴的范围,left 是 X 轴的最小值,right 是 X 轴的最大值。
bottom 和 top: Y 轴的范围,bottom 是 Y 轴的最小值,top 是 Y 轴的最大值。
ax1.set_xlim(0,2*np.pi) ax1.set_ylim(-3, 3)
10、set_xticks 和 set_yticks
调整坐标轴上的刻度个数和数据;
ax1.set_xticks([0, 2, 4, 6, 8, 10]) ax1.set_yticks([-1, -0.5, 0, 0.5, 1])
11、twinx 和 twiny 函数
多个图形之间共享坐标轴:twinx 表示 横坐标,twiny 表示纵坐标。
ax2 = ax1.twinx() ax2 = ax1.twiny()
四、图形展示
1、plot 线性图
格式:pylab.plot(x, y, format_string=None, **kwargs);format_string: 格式字符串,用于指定线条样式、颜色等。
'b':蓝色 'g'
:绿色 'r'
:红色 'c'
:青色 'm'
:洋红色 'y'
:黄色 'k'
:黑色 'w'
:白色
'.'
:点标记 ','
:像素标记 'o'
:圆圈标记 'v'
:向下三角标记 '^'
:向上三角标记 '<'
:向左三角标记 '>'
:向右三角标记 's'
:方形标记 'p'
:五边形标记 '*'
:星形标记 'h'
:六边形标记 1 'H'
:六边形标记 2 '+'
:加号标记 'x'
:叉号标记 'D'
:菱形标记 'd'
:细菱形标记 '|'
:竖线标记 '_'
:横线标记
'-'
:实线 '--'
:虚线 '-.'
:点划线 ':'
:点线
2、Bar 柱状图
格式:ax.bar(x, height, width=0.8, bottom=None, align='center', **kwargs) :x: 柱状图的 X 轴位置;height 柱状图的高度;width 柱状图的宽度,默认为 0.8;bottom 柱状图的底部位置,默认为 0;align 柱状图的对齐方式,可以是 'center'(居中对齐)或 'edge'(边缘对齐);**kwargs: 其他可选参数,用于定制柱状图的外观,如 color、edgecolor、linewidth 等。
ax.bar(x, y, align='center') ax.bar(x, y1, bottom=y)
x = ['A', 'B', 'C', 'D']
y = [20, 30, 15, 40]
y1 = [30, 20, 35, 10]fig, ax = plt.subplots()
ax.bar(x, y, align='center')
ax.bar(x, y1, bottom=y)plt.show() 3、
3、hist 直方图
格式:ax.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, **kwargs):x: 数据数组;bins: 直方图的柱数,可以是整数或序列;range: 直方图的范围,格式为 (min, max)
;density: 是否将直方图归一化,默认为 False
;weights: 每个数据点的权重;cumulative: 是否绘制累积直方图,默认为 False;
**kwargs: 其他可选参数,用于定制直方图的外观,如 color
、edgecolor
、linewidth
等。
ax.hist(data, bins=150)
data = np.random.randn(10000)
fig, ax = plt.subplots()
ax.hist(data, bins=150)
plt.show()
4、pie 饼图
格式:ax.pie(x, explode=None, labels=None, colors=None, autopct=None, shadow=False, startangle=0, **kwargs) :x: 数据数组,表示每个扇区的数据(自动全部汇总算出占比);explode: 一个数组,表示每个扇区偏离圆心的距离,默认为 None
;labels 每个扇区的标签,默认为 None;
colors 每个扇区的颜色,默认为 None
;autopct 控制显示每个扇区的占比,可以是格式化字符串或函数,默认为 None;
shadow: 是否显示阴影,默认为 False;
startangle 饼图的起始角度,默认为 0;**kwargs: 其他可选参数,用于定制饼图的外观。
ax.pie(y, labels=x, startangle=90, autopct='%1.1f%%')
x = ['A', 'B', 'C', 'D']
y = [2, 3, 4, 5]
fig, ax = plt.subplots()
ax.pie(y, labels=x, startangle=90, autopct='%1.1f%%')
plt.show()
5、Scatter 散点图
格式:ax.scatter(x, y, s=None, color=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, **kwargs):x: X 轴数据;y: Y 轴数据;s 点的大小,可以是标量或数组;color: 点的颜色,可以是标量、数组或颜色列表;marker 点的形状,默认为 'o'(圆圈);cmap: 颜色映射,用于将颜色映射到数据;norm: 归一化对象,用于将数据映射到颜色映射;vmin, vmax: 颜色映射的最小值和最大值;alpha: 点的透明度,取值范围为 0 到 1;linewidths: 点的边框宽度;edgecolors: 点的边框颜色;**kwargs: 其他可选参数,用于定制散点图的外观。
axes.scatter(x, y0, color='red', s=100, marker='o')
'o': 圆圈 's': 正方形 'D': 菱形 '^': 上三角形 'v': 下三角形 '>': 右三角形
'<': 左三角形 'p': 五边形 '*': 星形 '+': 加号 'x': 叉号 '.': 点 ',': 像素
'1': 三叉戟下 '2': 三叉戟上 '3': 三叉戟左 '4': 三叉戟右
'h': 六边形1 'H': 六边形2 'd': 小菱形 '|': 竖线 '_': 横线