科学计算和可视化

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

 

 

 

 

 

posted @ 2020-05-06 15:55  贾诩来编程  阅读(211)  评论(1编辑  收藏  举报