Python的科学计算包matplotlib setup
- 回想起大学四年
专业一直使用matlab,然而我却没在PC上装成功过,以前懒于思考这种数学工具的作用,直到最近,大学同学研究生要毕业了,几经交流,和自己阅读了一些机器学习的教材之后,发觉科学计算包和画图工具对于某些岗位来说非常的必要,因为使用数学建模而设计各种工业设计图的时候,需要对参数的调制画图观察效果。虽然我没有接触过实际场景,但在概率论的角度看,某些离散集合的数字特征(期望,方差)等,在图像上的表现,也可以借助此科学计算包辅助分析。
- set up
第一步
到python官网下载一个3.6的包,不知道从3.多版本开始,python开始支持pip,使用pip安装依赖很方便。最好使用windows系统,因为这种科学计算包做数学分析的多,而不是做功能,不需要一定在linux上运行。python官网
第二步
安装、并设置环境变量。主要在path后加上python安装路径就行。图解请百度。
第三步
在确定cmd可以输入python之后,使用命令安装matplotlib
python -m pip install matplotlib
安装完成之后,写一个Demo,画两条三角函数线。
#!/usr/bin/python #导入画图包 from pylab import * #创建一个新的8 * 6点的图 设置分辨率为80 figure(figsize=(8,6),dpi=80) #创建一个新的 1 * 1的子图 subplot(1,1,1) X=np.linspace(-np.pi,np.pi,256,endpoint=True) C=np.cos(X) S=np.sin(X) #绘制余弦 用蓝色 连续 宽度1 plot(X,C,color='blue',linewidth=1.0,linestyle='-') #绘制正弦 用绿色 连续 宽度1 plot(X,S,color='green',linewidth=1.0,linestyle='-') #设置横轴上下限 xlim(-4.0,4.0) #设置横轴记号 xticks(np.linspace(-4,4,9,endpoint=True)) #设置竖轴上下限 ylim(-1.0,1.0) #设置横轴记号 yticks(np.linspace(-1,1,5,endpoint=True)) #显示 show()
- 绘制简单直线
#!/usr/bin/python #常用数据类型练习 科学计算包 from pylab import * x=(-3,-2,-1,0,1,2,3) xlim(-4.0,4.0) ylim(-8.0,8.0) plot(x,[x*2+1 for x in x]) title("draw") xlabel("x") ylabel("y") show()
加上一段抄来的代码,主要是美化界面的
#!/usr/bin/python #常用数据类型练习 科学计算包 from pylab import * x=(-3,-2,-1,0,1,2,3) ax = plt.subplot(111) ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0)) xlim(-4.0,4.0) ylim(-8.0,8.0) plot(x,[x*2+1 for x in x]) title("draw") xlabel("x") ylabel("y") show()
- 矩阵运算
创建一个基本的数组
np.array()
使用数组运算是对应位置操作,不属于线性代数的矩阵运算。
矩阵matrix,使用如下创建。
np.mat()
两个矩阵相加,则对应位置相加。
列向量(1;2)乘以行向量(1,2)得到2*2的矩阵。
矩阵转置使用.T
- 线性空间,离散空间
np.linspace()
上述新建一个线性空间
np.arange()
上述新建一个离散空间
利用线性空间绘制函数图
#coding:utf-8 #画连续空间 from pylab import * x=np.linspace(-10,10,256,endpoint=True) s=np.sin(x) plot(x,s) show()
利用离散空间绘制柱状图
#coding:utf-8 #画离散空间散点图 from pylab import * from scipy.stats import binom as B rv=B(10,0.3)#伯努利试验 X~B(n,p) x=np.arange(0,20,1) y=rv.pmf(x) #plt.scatter(x,y,color='red')#绘制散点图 plt.bar(x,y,width=0.6,color='blue') plt.show()
- 常用函数
#encoding:utf-8 #常用函数 from pylab import * x1=np.linspace(-2,2) y1=x1**2#二次函数 抛物线 y2=np.exp(x1)#e为底指数函数 y3=np.log(x1)#自然对数函数 y4=np.sqrt(x1)#根号函数 #plt.plot(x1,y1,color='red',linewidth=2) #plt.plot(x1,y2,color='blue',linewidth=2) #plt.plot(x1,y3,color='green',linewidth=2) #plt.plot(x1,y4,color='yellow',linewidth=2) #show()
- 频率调制波
from pylab import * time = np.arange(0,10,.01) x = np.sin(2 * np.pi * 1 * time) x2 = np.sin(2 * np.pi * 100 * time) x3 = np.sin(2 * np.pi * 20 * time) x += x2 + x3 plot(time,x) show()
后续学习持续更新....