2015-12-14 60 views
0

我想知道如何在pyplot.contour中选择轮廓等级。我的意思是,给定函数f(x,y),通常通过评估f(x,y)= c,c = 0,1,2,...等点来选择电平曲线。但是,如果f(x,y)是nxn个点的数组A,那么如何选择关卡点?我不是说你怎么点得到连接,只需简单地对应于A = c如何在pyplot中选择水平曲线中的点?

回答

0

查看源代码(contour.py)的点,它是这样的

import numpy as np 
import matplotlib.pylab as pl 
import matplotlib.ticker as ticker 

x = np.arange(10) 
y = np.arange(10) 
z = np.random.random((10,10)) 

pl.figure() 
pl.contour(x, y, z) 
pl.colorbar() 

# manually calculate levels: 
zmin = np.amin(z) 
zmax = np.amax(z) 

N = 7 # default 
locator = ticker.MaxNLocator(N+1) 
lev = locator.tick_values(zmin, zmax) 

# Clip 
levels = lev[(lev > zmin) & (lev < zmax)] 

print(levels) 

[0.15 0.3 0.45 0.6 0.75 0.9]

enter image description here

0

的功能是在每个网格节点评价,并与iso等级进行比较。当沿着单元边缘发生符号变化时,通过两个节点之间的线性内插来计算点。点通过线段成对连接。当网格足够密集时,这是一个可接受的近似值。