Matplotlib是Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。它也可以和图形工具包一起使用,如PyQt和wxPython。
# coding:utf-8 import numpy asnp import pandas aspd importmatplotlib.pyplot as plt
1折线
defbroken_line(): x = np.linspace(0,10,1000) y = np.sin(x) z = np.cos(x) plt.style.use('seaborn-whitegrid')#图像风格 flg =plt.figure(figsize=(8,4))#创建图大小 plt.rcParams["font.family"]= 'Arial Unicode MS'#设置字体 plt.title('sin(x)& cos(x)')#设置标题 plt.xlabel('x')#设置x轴标题 plt.ylabel('y')#设置y轴标题 plt.xlim(-2.5,12.5)#设置x轴上下限 plt.ylim(-2,3)#设置y轴上下限 sin_line = plt.plot(x,y,label='$\sin(x)$',color='blue',linestyle='dashdot') cos_line = plt.plot(x,z,label='$\cos(x)$',color=(0.2,0.8,0.3),linestyle='--') plt.plot(x,y+1,":c",label='$\sin(x)+1$') plt.legend(loc='upperleft',frameon=True) plt.show()
plt.style.use(Style)
Style:['bmh', 'classic', 'dark_background', 'fast',
'fivethirtyeight', 'ggplot', 'grayscale','seaborn-bright',
'seaborn-colorblind','seaborn-dark-palette', 'seaborn-dark', 'seaborn-darkgrid',
'seaborn-deep', 'seaborn-muted','seaborn-notebook', 'seaborn-paper',
'seaborn-pastel', 'seaborn-poster','seaborn-talk', 'seaborn-ticks',
'seaborn-white', 'seaborn-whitegrid','seaborn', 'Solarize_Light2',
'tableau-colorblind10', '_classic_test']
plt.rcParams
- plt.rcParams['font.family'] = 'YaHei Consolas Hybrid' # 设置字体样式
- plt.rcParams['font.size'] = '16' # 设置字体大小
- plt.rcParams['font.stretch'] = 'normal'
- plt.rcParams['font.style'] = 'normal'
- plt.rcParams['font.variant'] = 'normal'
- plt.rcParams['font.weight'] = 'normal'
matplotlib.pyplot.legend(*args,**kwargs)
主要参数
- loc:图例所有figure位置
- prop:字体参数
- fontsize:字体大小(仅在未指定道具时使用)
- markerscale:图例标记与原始标记的相对大小
- markerfirst:如果为True,则图例标记位于图例标签的左侧
- numpoints:为线条图图例条目创建的标记点数
- scatterpoints:为散点图图例条目创建的标记点数
- scatteryoffsets:为散点图图例条目创建的标记的垂直偏移量
- frameon:控制是否应在图例周围绘制框架
- fancybox:控制是否应在构成图例背景的FancyBboxPatch周围启用圆边
- shadow:控制是否在图例后面画一个阴
- framealpha:控制图例框架的Alpha透明度
- edgecolor :框架边缘颜色.
- Facecolor:背景颜色
- Ncol:设置图例分为n列展示
- Borderpad:图例边框的内边距
- Labelspacing:图例条目之间的垂直间距
- Handlelength:图例句柄的长度
- Handleheight:图例句柄的高度
- Handletextpad:例句柄和文本之间的间距
- borderaxespad :与图例边框之间的距离
- columnspacing:列间距
- title:图例标题
- bbox_to_anchor:指定图例在轴的位置
- bbox_transform:the transform for the bbox. transAxes if None.
常用参数
- 设置图列位置
plt.legend(loc='upper center')
0: ‘best'
1: ‘upper right'
2: ‘upper left'
3: ‘lower left'
4: ‘lower right'
5: ‘right'
6: ‘center left'
7: ‘center right'
8: ‘lower center'
9: ‘upper center'
10: ‘center'
- 设置图例字体大小
fontsize : int or float or {‘xx-small’,‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}
- 设置图例边框及背景
plt.legend(loc='best',frameon=False) #去掉图例边框
plt.legend(loc='best',edgecolor='blue') #设置图例边框颜色
plt.legend(loc='best',facecolor='blue') #设置图例背景颜色,若无边框,参数无效
对于边框还可以采用面向对象方式:
legend = plt.legend(["First","Second"])
frame = legend.get_frame()
frame.set_facecolor('blue')
- 设置图例标题
legend = plt.legend(["CH","US"], title='China VS Us')
- 设置图例名字及对应关系
legend = plt.legend([p1, p2],["CH", "US"])
plt.plot()
一个通用命令,将(x, y)绘制成线条或散点图。
常用参数
- x, y 数据,x是可选的,默认range(len(y))
- fmt format,格式,形状,例如,'ro'表示红圈
- data 标有数据的对象,可选
线条的格式
- alpha:float,透明度
- fillstyle:{'full', 'left', 'right', 'bottom', 'top', 'none'}
- linestyle/ls:{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
- linewidth/lw:float
- marker:marker style
- markeredgecolor/mec:color
- markeredgewidth/mew:float
- markerfacecolor/mfc:color
- markersize/ms:float
- ... ...
plt.figure()
用于创建一个新图
常用参数
- num: 新图的编号,默认递增
- figsize: 宽度,高度,以英寸为单位
- dpi: 分辨率,整数
- facecolor: 背景颜色
- edgecolor:边框颜色
- frameon: 若为False,则没有边框
clear : 若为True,如果图的编号已存在则先清除
2多子图
def Multiple(): figure, ax = plt.subplots() figure.suptitle('Subplotsdemo') #2.1误差线 x = np.linspace(0,10,50)
numpy.linspace(start, stop, num=50, endpoint=True,retstep=False, dtype=None)
主要参数:
- start:开始
- stop:结束
- num=50:样本个数
- endpoint=True:如果是Ture,则一定包括stop,如果为False,一定不会有stop
- retstep=False:如果是True, return (samples, step), 其中step是样本之间的间距
dtype=None:输出数组的类型。如果未给出数据类型,则从其他输入参数推断数据类型.
data1 = np.sin(x)+x*0.48 plt.subplot(2,2,1)
plt.subplot(a,b,c):b行a列,当前是第c个
plt.errorbar(x,data1,yerr=x*0.48,fmt='.k',ecolor='green') #可视化误差 matplotlib.pyplot.errorbar(x,y, yerr=None, xerr=None, fmt=’’, ecolor=None, elinewidth=None, capsize=None,capthick=None) #2.2饼图 data2 = [0,1,0,4,0.3,0.2] plt.subplot(2,2,2) plt.pie(data2) #2.3等高线 x = np.linspace(0,5,50) y = np.linspace(0,5,40) x,y = np.meshgrid(x,y) plt.subplot(2,2,3) plt.contour(x,y,f(x,y),colors='blue') #2.4直方图 data4 = np.random.rand(1000) plt.subplot(2,2,4) plt.hist(data4) plt.show()
matplotlib.pyplot.errorbar(x,y, yerr=None, xerr=None, fmt=’’, ecolor=None, elinewidth=None, capsize=None,capthick=None)
主要参数:
- x,y: 数据点的位置坐标
- xerr,yerr: 数据的误差范围
- fmt: 数据点的标记样式以及相互之间连接线样式
- ecolor: 误差棒的线条颜色
- elinewidth: 误差棒的线条粗细
- capsize: 误差棒边界横杠的大小
- capthick: 误差棒边界横杠的厚度
- ms: 数据点的大小
- mfc: 数据点的颜色
- mec: 数据点边缘的颜色
plt.pie(x, explode=None, labels=None,colors=None, autopct=None,
pctdistance=0.6, shadow=False, labeldistance=1.1,startangle=None,
radius=None, counterclock=True,wedgeprops=None, textprops=None,
center=(0, 0), frame=False,rotatelabels=False, hold=None, data=None)
- x:(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化。
- labels :(每一块)饼图外侧显示的说明文字。
- explode :(每一块)离开中心距离。
- startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起。
- shadow :在饼图下面画一个阴影。默认值:False,即不画阴影。
- labeldistance :label标记的绘制位置,相对于半径的比例,默认值为1.1,如<1则绘制在饼图内侧。
- autopct :控制饼图内百分比设置,可以使用format字符串或者format function
- '%1.1f'指小数点前后位数(没有用空格补齐)。
- pctdistance :类似于labeldistance,指定autopct的位置刻度,默认值为0.6。
- radius :控制饼图半径,默认值为1。
- counterclock :指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。
- wedgeprops :字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={'linewidth':3}设置wedge线宽为3。
- textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
- center :浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
- frame :布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
- rotatelabels :布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。
matplotlib.pyplot.hist(
x, bins=10, range=None, normed=False,
weights=None, cumulative=False,bottom=None,
histtype=u'bar','mid',orientation=u'vertical',
rwidth=None, log=False, color=None, label=None, stacked=False,
hold=None, **kwargs)
主要参数:
- x : (n,) array or sequence of (n,) arrays,这个参数是指定每个bin(箱子)分布的数据,对应x轴
- bins : integer or array_like, 可选,这个参数指定bin(箱子)的个数,也就是总共有几条条状图
- normed : boolean, 可选,如果为真,则返回元组的第一个元素将是被归一化以形成概率密度的计数,即n/(len(x)`dbin)。这个参数指定密度,也就是每个条状图的占比例比,默认为1
color: color or array_like of colors or None, 可选,这个指定条状图的颜色
def f(x,y): return np.sin(x) ** 10 +np.cos(x*y+12)*np.cos(x) if__name__=="__main__": broken_line() Multiple()
—————————————————————————————————
软件安全测试
https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486
接口自动化测试
https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486
DevOps 和Jenkins之DevOps
https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486
DevOps与Jenkins 2.0之Jenkins
https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486
Selenium自动化测试
https://study.163.com/course/courseMain.htm?courseId=1209835807&share=2&shareId=480000002205486
性能测试第1季:性能测试基础知识
https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486
性能测试第2季:LoadRunner12使用
https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486
性能测试第3季:JMeter工具使用
https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486
性能测试第4季:监控与调优
https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486
Django入门
https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486
啄木鸟顾老师漫谈软件测试
https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486