numpy和matplotlib画图
一、numpy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。运用时一般用以下方法导入
import numpy as np
numpy常用方法
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。numpy方法 | 解释 |
np.array(l) | 把l转化成数组,l可以是列表,元组或range对象 |
np.arange(x,y,z) | 类似于np.array(x,y,z) |
np.linspace(x,y,z) | 等差数组,从x到y,共z个元素 |
np.linspace(0, 10, 11, endpoint=False) | 不包含终点 |
np.logspace(x,y,z,base) | 对数数组,相当于base**np.linspace(x,y,z) |
np.zeros(x)或np.zeros((x,y)) | 生成元素全为0的一行x列或x行y列数组 |
np.ones(x)或np.ones((x,y)) | 生成元素全为1的一行x列或x行y列数组 |
np.identity(x) | x行x列的单位矩阵 |
np.dot(a,b) | a,b均为数组,返回a与b的内积 |
np.sin(l) | 对数组l的每个元素求正弦值 |
np.cos(l) | 对数组l的每个元素求余弦值 |
np.round(l) | 对数组l的每个元素四舍五入 |
np.floor(x) | 对数组l的每个元素向上取整 |
np.ceil(x) | 对数组l的每个元素向下取整 |
l.shape(x,y) | 把数组l改为x行y列数组,x或y=-1表示自动运算 |
l.reshape(x,y) | l.shape(x,y)方法返回新的数组 |
a[x:y:z] | 从x到y,步长为z逐个取元素 |
np.random.rand(x) | 返回包含x个随机数的数组 |
np.where(x<5, 0, 1) | x为数组,其中元素值小于5的对应0,其他对应1 |
np.piecewise(x, [x<4, x>7], [lambda x:x*2, lambda x:x*3]) | x为数组,小于4的元素乘以2,大于7的元素乘以3,其他元素变为0 |
np.bincount(x) | x为数组,从最小值到最大值返回元素出现次数 |
np.sum() | 数组长度 |
np.unique(x) | 返回数组x中唯一元素值 |
a_mat=np.matrix(list) | 以列表list创建矩阵 |
a_mat.T | 矩阵转置 |
a_mat.shape | 矩阵形状 |
a_mat.size | 元素个数 |
a_mat.mean() | 元素平均值 |
a_mat.sum() | 所有元素之和 |
a_mat.max() | 最大值 |
a_mat.max(axis=1) | 横向最大值 |
a_mat.max(axis=0) | 纵向最大值 |
a_mat.argsort(axis=0) | 纵向排序后的元素序号 |
a_mat.argsort(axis=1) | 横向排序后的元素序号 |
a_mat.diagonal() | 矩阵对角线元素 |
a_mat.sum(axis=0) | 纵向求和 |
a_mat.sum(axis=1) | 横向求和 |
x.mean() | 平均值 |
x.max() | 元素最大值 |
x.std() | 标准差 |
x.var() | 方差 |
二、matplotlib 是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
1.pylab接口是由matplotlib.pylab提供的函数集,允许用户使用非常类似于MATLAB图生成代码的代码创建绘图
2.matplotlib前端或API是一组重要的类,可创建和管理图形,文本,线条,图表等,是一个对输出无所了解的抽象接口
3.后端是设备相关的绘图设备,也称为渲染器,将前端表示转换为打印件或显示设备;后端示例:PS 创建 PostScript® 打印件,SVG 创建可缩放矢量图形打印件,Agg 使用 Matplotlib 附带的高质量反颗粒几何库创建 PNG 输出,GTK 在 Gtk+ 应用程序中嵌入 Matplotlib,GTKAgg 使用反颗粒渲染器创建图形并将其嵌入到 Gtk+ 应用程序中,以 及 用于 PDF,WxWidgets,Tkinter 等
三、成绩表
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' #设置默认字体 matplotlib.rcParams['font.sans-serif']=['SimHei'] #设置默认字体 labels = np.array(['第一周','第二周','第三周','第四周','第五周','第六周','第七周']) # nAttr = 7 #边数 data = np.array([70,100,96.7,100,110,70,0]) #数据值 angles = np.linspace(0,2*np.pi,nAttr,endpoint=False) #角度设置,0-2PI,分隔7次 data = np.concatenate((data,[data[0]])) #将数据和角度的数组首尾闭合,便于用plot函数绘制 angles = np.concatenate((angles,[angles[0]])) fig = plt.figure(facecolor="white") #图形外的周边颜色 plt.subplot(111,polar=True) #建立极坐标系的子分区 plt.plot(angles,data,'bo-',color='blue',linewidth=2) #按照角度和数据画出不规则多边形 plt.fill(angles,data,facecolor='g',alpha=0.25) #填充颜色 plt.thetagrids(angles*180/np.pi,labels) #设置标签 plt.figtext(0.52,0.95,'ZTML的成绩表',ha='center') #设置标题 plt.grid(True) plt.savefig('dota_radar.JPG') plt.show()
结果如下
三、重力与质量的关系
import numpy as np import pylab as pl import matplotlib.font_manager as fm myfont = fm.FontProperties(fname='C:/Windows/Fonts/simfang.ttf') t = np.arange(0.0, 100.0, 15.0) s = 9.8*t pl.plot(t, s, label='G-m') pl.xlabel('m-质量', fontproperties='STKAITI', fontsize=18) pl.ylabel('G-重力', fontproperties='simhei', fontsize=18) pl.title('G-m图像', fontproperties='STLITI', fontsize=24) pl.legend(prop=myfont) pl.show()

更多精彩