我想知道如何在pyplot.contour
中选择轮廓水平。我的意思是,给定函数f(x,y),通常通过评估f(x,y)= c,c = 0,1,2,......等点来选择水平曲线。但是,如果f(x,y)是nxn点的数组A
,那么如何选择水平点?我并不是说这些点是如何连接的,只是简单地指向与A = c
答案 0 :(得分: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]
答案 1 :(得分:0)
在每个网格节点评估该函数,并与iso级进行比较。当沿着单元边缘存在符号变化时,通过两个节点之间的线性插值来计算点。点由线段成对连接。当网格足够密集时,这是可接受的近似值。