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