科学计算可视化

用于数据分析、科学计算与可视化的扩展模块主要有:numpy、scipy、pandas、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV。

 

Numpy介绍

Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高。

 

Matplotlib介绍

Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式,基于Numpy库。可以实现的效果还是特别广.matplotlib模块依赖于numpy模块和tkinter模块,可以绘制多种形式的图形,包括线图、直方图、饼状图、散点图、误差线图等等,图形质量可满足出版要求,是数据可视化的重要工具。

scipy介绍:

scipy依赖于numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化、插值、信号处理、图像处理、统计等等。

pandas(Python Data Analysis Library)介绍:

pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一。

导入模块
>>> import numpy as np

二、使用numpy、matplotlib模块绘制雷达图

 

 

 

三、使用PIL、numpy模块自定义手绘风

from PIL import Image
import numpy as np
 
a = np.asarray(Image.open("maomi.jpg").convert("L")).astype("float")
 
depth = 8 
grad = np.gradient(a) 
 
grad_x, grad_y = grad
grad_x = grad_x*depth/100
grad_y = grad_y*depth/100
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
 
vec_el = np.pi/2.2  #θ角度
vec_az = np.pi/4.   #α角度
dx = np.cos(vec_el)*np.cos(vec_az)
dy = np.cos(vec_el)*np.sin(vec_az)
dz = np.sin(vec_el)
 
b = 255*(dx*uni_x + dy*uni_y + dz*uni_z)
b = b.clip(0, 255)
 
im = Image.fromarray(b.astype('uint8'))
im.save("miaomiao.jpg")

执行后

利用numpy和matplolib库绘制笛卡尔心形图(心脏线)

import matplotlib.pyplot as plt
import numpy as np
a = plt.subplot(111,projection = 'polar')
t = np.linspace(0,2*np.pi,60)
a.plot(t,1-np.sin(t),'-',c='b')
plt.show()

 

 

 

 

 

 

posted @ 2020-05-06 16:14  MCcat  阅读(498)  评论(0)    收藏  举报