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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 机器学习测试笔记(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进行规格选择与性能压测。
目录
相关文章
|
1月前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
51 1
|
1月前
|
机器学习/深度学习 人工智能 安全
自动化测试的未来:AI与机器学习的结合
随着技术的发展,软件测试领域正迎来一场革命。自动化测试,一度被认为是提高效率和准确性的黄金标准,如今正在被人工智能(AI)和机器学习(ML)的浪潮所推动。本文将探讨AI和ML如何改变自动化测试的面貌,提供代码示例,并展望这一趋势如何塑造软件测试的未来。我们将从基础概念出发,逐步深入到实际应用,揭示这一技术融合如何为测试工程师带来新的挑战和机遇。
59 3
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高测试效率和质量的关键。随着人工智能(AI)和机器学习(ML)技术的飞速发展,它们正逐步渗透到自动化测试中,预示着一场测试革命的来临。本文将探讨AI和ML如何重塑自动化测试的未来,通过具体案例展示这些技术如何优化测试流程,提高测试覆盖率和准确性,以及它们对测试工程师角色的影响。
90 7
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
探索自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高效率和准确性的关键。但随着技术的发展,特别是人工智能(AI)和机器学习(ML)的兴起,我们见证了一个新时代的到来——自动化测试的未来正逐渐被重新定义。本文将探讨AI和ML如何改变自动化测试的面貌,从智能测试脚本的生成到测试结果的深度分析,我们将一探究竟这些前沿技术是如何使测试流程更加智能化、高效化,并预测它们将如何塑造软件测试的未来趋势。
|
2月前
|
机器学习/深度学习 人工智能 测试技术
自动化测试的未来:AI与机器学习的融合之路
【9月更文挑战第15天】在软件测试领域,自动化一直被视为提高效率和精确度的关键。随着人工智能(AI)和机器学习(ML)技术的不断进步,它们已经开始改变自动化测试的面貌。本文将探讨AI和ML如何赋能自动化测试,提升测试用例的智能生成、优化测试流程,并预测未来趋势。我们将通过实际代码示例来揭示这些技术如何被集成到现有的测试框架中,以及开发人员如何利用它们来提高软件质量。
75 15
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
48 2
|
2月前
|
机器学习/深度学习 Python
训练集、测试集与验证集:机器学习模型评估的基石
在机器学习中,数据集通常被划分为训练集、验证集和测试集,以评估模型性能并调整参数。训练集用于拟合模型,验证集用于调整超参数和防止过拟合,测试集则用于评估最终模型性能。本文详细介绍了这三个集合的作用,并通过代码示例展示了如何进行数据集的划分。合理的划分有助于提升模型的泛化能力。
|
3月前
|
机器学习/深度学习 人工智能 运维
自动化测试的未来:AI与机器学习的融合
【8月更文挑战第29天】随着技术的快速发展,自动化测试正在经历一场革命。本文将探讨AI和机器学习如何改变软件测试领域,提供代码示例,并讨论未来趋势。
|
2天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
11 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024

热门文章

最新文章