科学计算和可视化

1、numpy ,matplotlib的笔记:

 

 2、python123成绩

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3  
 4 # 中文和负号的正常显示
 5 plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
 6 plt.rcParams['axes.unicode_minus'] = False
 7  
 8 # 使用ggplot的绘图风格
 9 plt.style.use('ggplot')
10  
11 # 构造数据
12 values = [5,5,5,5,5,5,4]
13 feature = ['第一周','第二周','第三周','第四周','第五周','第六周','第七周']
14  
15 N = len(values)
16 # 设置雷达图的角度,用于平分切开一个圆面
17 angles=np.linspace(0, 2*np.pi, N, endpoint=False)
18 # 为了使雷达图一圈封闭起来,需要下面的步骤
19 values=np.concatenate((values,[values[0]]))
20 angles=np.concatenate((angles,[angles[0]]))
21  
22 # 绘图
23 fig=plt.figure()
24 ax = fig.add_subplot(111, polar=True)
25 # 绘制折线图
26 ax.plot(angles, values, 'bo-', linewidth=2, label = '学号2019310143001')
27 # 填充颜色
28 ax.fill(angles, values, color='m',alpha=0.35)
29  
30 # 添加每个特征的标签
31 ax.set_thetagrids(angles * 180/np.pi, feature)
32 # 设置雷达图的范围
33 ax.set_ylim(0,6)
34 # 添加标题
35 plt.title('ghh的成绩单')
36  
37 # 添加网格线
38 ax.grid(True)
39 # 设置图例
40 plt.legend(loc = 'best')
41 
42 # 显示图形
43 plt.show()

结果:

3、手绘:

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

原图:

 

 结果:

原文地址:https://www.cnblogs.com/ghh0/p/12838425.html