numpy 库概述

   由于numpy 库中函数较多且命名容易与常用命名混淆,建议采用如下方式引用numpy 库:

>>>import numpy as np

  其中,as 保留字与import 一起使用能够改变后续代码中库的命名空间,有助于提高代码可读性。简单说,在程序的后续部分中,np 代替numpy。

numpy 库常用的创建数组函数

 

 

 

numpy 库的算术运算函数

 

 

这些函数中,输出参数y 可选,如果没有指定,将创建并返回一个新的数组保存计算结果;如果指定参数,则将结果保存到参数中。例如,两个数组相加可以简单地写为a+b,而np.add(a,b,a)则表示a+=b。

 

 

numpy 库的比较运算函数

 

 

 

 

 

其将返回一个布尔数组,它包含两个数组中对应元素值的比较结果,例子如下。 where()函数是三元表达式x if condition else y 的矢量版本。

 

 

numpy 库的其他运算函数

 

 

 

 

matplotlib库的使用

matplotlib 是提供数据绘图功能的第三方库,其pyplot 子库主要用于实现各种数据展示图形的绘制。

matplotlib.pyplot 是matplotlib 的子库,引用方式如下:

>>>import matplotlib.pyplot as plt

上述语句与import matplotlib.pyplot 一致,as 保留字与import 一起使用能够改变后续代码中库的命名空间,有助于提高代码可读性。简单说,在后续程序中,plt 将代替matplotlib.pyplot。

matplotlib.pyplot 库概述

为了正确显示中文字体,请用以下代码更改默认设置,其中'SimHei'表示黑体字。

 

 

 

   matplotlib 库由一系列有组织有隶属关系的对象构成,这对于基础绘图操作来说显得过于复杂。因此,matplotlib 提供了一套快捷命令式的绘图接口函数,即pyplot 子模块。pyplot 将绘图所需要的对象构建过程封装在函数中,对用户提供了更加友好的接口。pyplot 模块提供一批预定义的绘图函数,大多数函数可以从函数名辨别它的功能。

 

matplotlib.pyplot 库解析

    plt 子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等。 这些函数采用plt.<b>()形式调用,其中<b>是具体函数名称。

plt 库的绘图区域函数

 

 

 

plt 库的绘图区域函数

使用figure()函数创建一个全局绘图区域,并且使它成为当前的绘图对象,figsize参数可以指定绘图区域的宽度和高度,单位为英寸。鉴于figure()函数参数较多,这里采用指定参数名称的方式输入参数。

>>> plt.figure(figsize=(8,4))

  subplot()都用于在全局绘图区域内创建子绘图区域,其参数表示将全局绘图区域分成nrows 行和ncols 列,并根据先行后列的计数方式在plot_number 位置生成一个坐标系,实例代码如下,三个参数关系如图10.3 所示。其中,全局绘图区域被风割成3x2 的网格,其中,在第4 个位置绘制了一个坐标系。

 

 

 

 

axes()默认创建一个subplot(111)坐标系,参数rec = [left,bottom,width,height]中四个变量的范围都为[0,1],表示坐标系与全局绘图区域的关系;axisbg 指背景色,默认为white。

 

 

plt 库的读取和显示函数

 

 

 

plt 库的基础图表函数

 

 

 

 

 

 

 

plt库的坐标轴

plt 库有两个坐标体系;图像坐标和数据坐标。图像坐标将图像所在区域左下角视为原点,将x 方向和y 方向长度设定为1。整体绘图区域有一个图像坐标,每个axes()和subplot()函数产生的子图也有属于自己的图像坐标。axes()函数参数rect 指当前产生的子区域相对于整个绘图区域的图像坐标。数据坐标以当前绘图区域的坐标轴为参考,显示每个数据点的相对位置,这与坐标系里面标记数据点一直。

plt 库的坐标轴设置函数

 

 

 

plt 库的标签设置函数

 

 

 

 

实例一:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']
plt.plot([1,2,4],[1,2,3])
plt.title("坐标系标题")
plt.xlabel("时间(s) ") 
plt.ylabel("范围(m) ") 
plt.show()

  

 

作业一:画出成绩雷达图

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
lables = np.array(['第一次', '第二次', '第三次', '第四次', '第五次', \
             '第六次', '第七次', '第八次','第九次','第十次'])   #每个区域的名称
nAttr = 10
date = np.array([18,19,18,19,17,19,16,18,19,19])   #数据值
angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
date = np.concatenate((date, [date[0]]))                  #连接data和data[0]
angles = np.concatenate((angles, [angles[0]]))                #连接angles和angles[0]
fig = plt.figure(facecolor="white")                       #创建一个全局绘图区域
plt.subplot(111, polar=True)
plt.plot(angles, date, 'bo-', color = 'r', linewidth = 5)
plt.fill(angles, date, facecolor = 'r', alpha = 0.25)
plt.thetagrids(angles*180/np.pi, lables)                 #在各个angles的位置上标记上对应的labels
plt.figtext(0.52, 0.95, '作业成绩雷达图', ha='center')    #为全局绘图区添加文字
plt.grid(True)
plt.figtext(0.72,0.95,'学号:2019310143145')
plt.show()