科学计算和可视化

一、numpy&matplotlib读书笔记。

(一)numpy库的笔记:

简述:numpy 库处理的最基础数据类型是由同种元素构成的多维数组(ndarray),简称“数组”。 数组中所有元素的类型必须相同,数组中元素可以用整数索引,序号从0开始。ndarray 类型的维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。一维数组的秩为1,二维数组的秩为2,二维数组相当于由两个一维数组构成。

1.创建数组函数:

科学计算和可视化

 

 

 2.查看ndarray 类型有一些基本属性

 

科学计算和可视化

 

 

科学计算和可视化

 

 3.ndarray 类的形态操作方法

科学计算和可视化

 

 4.ndarray 类的索引和切片方法

科学计算和可视化

 

 5.numpy 库的算术运算函数

科学计算和可视化

 

 6.numpy 库的比较运算函数

科学计算和可视化

7.numpy 库的其他运算函数

科学计算和可视化

 

(二)matplotlib的笔记:

简述:matplotlib 库由一系列有组织有隶属关系的对象构成,这对于基础绘图操作来说显得过于复杂。因此,matplotlib 提供了一套快捷命令式的绘图接口函数,即pyplot 子模块。pyplot 将绘图所需要的对象构建过程封装在函数中,对用户提供了更加友好的接口。pyplot 模块提供一批预定义的绘图函数,大多数函数可以从函数名辨别它的功能。matplotlib.pyplot 库的plt 子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等。 这些函数采用plt.<b>()形式调用,其中<b>是具体函数名称。

 

1.plt 库的绘图区域函数

科学计算和可视化

 

 

 2.使用figure()函数创建一个全局绘图区域,并且使它成为当前的绘图对象,figsize参数可以指定绘图区域的宽度和高度,单位为英寸。鉴于figure()函数参数较多,这里采用指定参数名称的方式输入参数plt.figure(figsize=(8,4))

3.subplot()都用于在全局绘图区域内创建子绘图区域,其参数表示将全局绘图区域分成nrows 行和ncols 列,并根据先行后列的计数方式在plot_number 位置生成一个坐标系,实例代码如下,三个参数关系如图10.3 所示。其中,全局绘图区域被风割成3x2 的网格,其中,在第4 个位置绘制了一个坐标系。

科学计算和可视化

 

 

科学计算和可视化

 

4.axes()默认创建一个subplot(111)坐标系,参数rec = [left,bottom,width,height]中四个变量的范围都为[0,1],表示坐标系与全局绘图区域的关系;axisbg 指背景色,默认为white。

5.plt 库的读取和显示函数

科学计算和可视化

 

 6.plt 库的基础图表函数

 

科学计算和可视化

 7.plt 库的基础图表函数

科学计算和可视化

8.plt 库的基础图表函数

科学计算和可视化

 

 9.plt 库的坐标轴设置函数

科学计算和可视化

 

 10.plt 库的标签设置函数

科学计算和可视化

 

 11.plt 库的标签设置函数

科学计算和可视化

 

 12.plt 库的区域填充函数

 科学计算和可视化

13.字体表

科学计算和可视化

'font.family' 用于显示字体的名字
'font.style' 字体风格,正常'normal'或斜体'italic'
'font.size' 字体大小,整数字号或者'large','x-small'

二、Python123成绩的雷达图。

 

 1 #上一周考试的每一道题得分情况
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4 import matplotlib
 5 matplotlib.rcParams['font.family']='SimHei'
 6 matplotlib.rcParams['font.sans-serif'] = ['SimHei']
 7 labels = np.array(['第一题','第二题','第三题','第四题','第五题','第六题'])
 8 nAttr = 6
 9 data = np.array([10,10,0,10,10,10]) 
10 angles = np.linspace(0,2*np.pi,nAttr, endpoint=False)
11 data = np.concatenate ((data,[data[0]]))
12 angles = np.concatenate((angles,[angles[0]]))
13 fig = plt.figure(facecolor="white")
14 plt.subplot(111, polar= True)
15 plt.plot (angles ,data, 'bo-' ,color ='g' ,linewidth=2)
16 plt.fill (angles , data, facecolor ='g' , alpha=0.25)
17 plt.thetagrids (angles*180/np.pi, labels)
18 plt.figtext(0.52, 0.95,'上周考试每道题得分雷达图',ha='center')
19 plt.grid (True)
20 plt.savefig( '成绩图.JPG')
21 plt.show ()

 

 

 

科学计算和可视化

 

 

 

 

 

三、自定义手绘风。

 

 1 #shouhui.py 
 2 from PIL import Image
 3 import numpy as np
 4 vec_el = np.pi/2.2                        
 5 vec_az = np.pi/4                          
 6 depth = 100                                   
 7 im = Image.open('F:\荷花.jpg').convert('L')
 8 a =np.asarray (im).astype('float')
 9 grad =np.gradient (a)                   
10 grad_x,grad_y = grad                  
11 grad_x = grad_x*depth/100 
12 grad_y = grad_y*depth/100
13 dx = np.cos (vec_el) *np.cos(vec_az)      
14 dy = np.cos (vec_el) *np.sin(vec_az)         
15 dz = np. sin(vec_el)             
16 A = np.sqrt(grad_x**2 + grad_y**2 + 1)
17 uni_x=grad_x/A
18 uni_y = grad_y/A
19 uni_z = 1/A
20 a2 = 255* (dx*uni_x + dy*uni_y + dz*uni_z) 
21 a2 = a2.clip(0,255)
22 im2 =Image.fromarray (a2. astype('uint8'))  
23 im2.save('荷花手绘.jpg')

科学计算和可视化

 科学计算和可视化

 

四、绘制感兴趣的数学规律。

 

 1 import numpy as np
 2 import pylab as pl
 3 import matplotlib.font_manager as fm
 4 import matplotlib
 5 t=np.arange(0.0,2.0*np.pi,0.01)
 6 s=np.sin(t)
 7 z=np.cos(t)
 8 pl.plot(t,s,label='正弦')
 9 pl.plot(t,z,label='余弦')
10 pl.xlabel('x-变量',fontproperties='SimHei',fontsize=18)
11 pl.ylabel('y-正弦余弦函数值',fontproperties='SimHei',fontsize=18)
12 pl.title('sin-cos函数图像',fontproperties='SimHei',fontsize=24)
13 pl.show()

 

 

 

科学计算和可视化

 

 

上一篇:任务22 科学计算和可视化


下一篇:剑指offer 09. 用两个栈实现队列