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

 

    后续学习持续更新....

 

posted @ 2018-01-09 13:33  天目山电鳗  阅读(366)  评论(0编辑  收藏  举报