机器学习测试笔记(3)——Matplotlib

简介: 机器学习测试笔记(3)——Matplotlib

MatplotlibPython 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。它也可以和图形工具包一起使用,如PyQtwxPython


# 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()

image.png


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_transformthe 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      标有数据的对象,可选

线条的格式

  • alphafloat,透明度
  • fillstyle{'full', 'left', 'right', 'bottom', 'top', 'none'}
  • linestyle/ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
  • linewidth/lwfloat
  • markermarker style
  • markeredgecolor/meccolor
  • markeredgewidth/mewfloat
  • markerfacecolor/mfccolor
  • markersize/msfloat
  • ...  ...

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):ba列,当前是第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, 可选,这个指定条状图的颜色

image.png

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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3天前
|
机器学习/深度学习 算法 UED
【Python 机器学习专栏】A/B 测试在机器学习项目中的应用
【4月更文挑战第30天】A/B测试在数据驱动的机器学习项目中扮演关键角色,用于评估模型性能、算法改进和特征选择。通过定义目标、划分群组、实施处理、收集数据和分析结果,A/B测试能帮助优化模型和用户体验。Python提供工具如pandas和scipy.stats支持实验实施与分析。注意样本量、随机性、时间因素和多变量分析,确保测试有效性。A/B测试助力于持续改进机器学习项目,实现更好的成果。
|
3天前
|
机器学习/深度学习 人工智能 测试技术
自动化测试中AI与机器学习的融合应用
【4月更文挑战第29天】 随着技术的不断进步,人工智能(AI)和机器学习(ML)在软件测试中的应用越来越广泛。本文将探讨AI和ML如何改变自动化测试领域,提高测试效率和质量。我们将讨论AI和ML的基本概念,以及它们如何应用于自动化测试,包括智能测试用例生成,缺陷预测,测试执行优化等方面。最后,我们还将讨论AI和ML在自动化测试中的挑战和未来发展趋势。
|
3天前
|
机器学习/深度学习 人工智能 测试技术
探索自动化测试的未来:机器学习的新趋势
传统的软件测试方法已经无法满足当今快速发展的软件开发需求。随着人工智能和机器学习技术的不断进步,自动化测试也正在经历革命性的变革。本文将探讨机器学习在自动化测试中的应用,以及它对未来软件测试的影响。
|
3天前
|
索引 机器学习/深度学习 Python
fast.ai 机器学习笔记(二)(3)
fast.ai 机器学习笔记(二)
32 0
fast.ai 机器学习笔记(二)(3)
|
3天前
|
机器学习/深度学习 算法框架/工具 PyTorch
fast.ai 机器学习笔记(三)(2)
fast.ai 机器学习笔记(三)
43 0
fast.ai 机器学习笔记(三)(2)
|
3天前
|
机器学习/深度学习 算法 计算机视觉
fast.ai 机器学习笔记(四)(4)
fast.ai 机器学习笔记(四)
22 0
fast.ai 机器学习笔记(四)(4)
|
3天前
|
机器学习/深度学习 索引 Python
fast.ai 机器学习笔记(四)(2)
fast.ai 机器学习笔记(四)
109 0
fast.ai 机器学习笔记(四)(2)
|
3天前
|
机器学习/深度学习 数据挖掘 Python
fast.ai 机器学习笔记(一)(4)
fast.ai 机器学习笔记(一)
93 1
fast.ai 机器学习笔记(一)(4)
|
3天前
|
机器学习/深度学习 Python 索引
fast.ai 机器学习笔记(一)(1)
fast.ai 机器学习笔记(一)
41 0
fast.ai 机器学习笔记(一)(1)
|
3天前
|
机器学习/深度学习 API Apache
机器学习PAI常见问题之本地运行深度学习训练和预测的测试代码时报错如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。

热门文章

最新文章