势图
实例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import numpy as np
import matplotlib.pyplot as plt
def fun(x, y):
return x*np.exp((-x**2)-(y**2))
#创建一个画布 0表示编号,dpi表示像素,figsize表示画布大小
fig = plt.figure(0,dpi=140,figsize=(8,8))
#linspace将区间等分为500份
x = y = np.linspace(-2.0, 2.0, 500)
#meshgrid网格化处理(笛卡尔乘积),没有的话会导致数据过少(只有经过原点角平分线上的点)
X, Y = np.meshgrid(x, y)
#形成z坐标(x,y,z)构成了立体图形,为一个漏斗图
Z=fun(X,Y)
#创建一个画布形成两行两列的画框,像素150,figsize表示画布总大小被4个平分,画框形成的为数组通过索引获取
fig,axes1=plt.subplots(2,2,dpi=150,figsize=(10,10))
#[0,0]表示第一行第一个画框
axes1[0,0].imshow(Z)
axes1[0,1].imshow(Z,cmap = plt.cm.gray)
axes1[1,0].imshow(Z,cmap=plt.cm.cool)
axes1[1,1].imshow(Z,cmap=plt.cm.hot)
plt.show()
势图主要由很多的等势线构成,形成的三维立体与平面相切,形成的圈投影到二维平面形成等势线,众多的等势线构成了势图
np.where
1 | np.where(condition,[x,y])快速找到想要的数据 如果条件为真返回x,为假返回y,如果条件加了[]会导致形成的数组维度增加 |