如何在pyplot中选择水平曲线中的点?

时间:2015-12-14 19:30:01

标签: python math matplotlib

我想知道如何在pyplot.contour中选择轮廓水平。我的意思是,给定函数f(x,y),通常通过评估f(x,y)= c,c = 0,1,2,......等点来选择水平曲线。但是,如果f(x,y)是nxn点的数组A,那么如何选择水平点?我并不是说这些点是如何连接的,只是简单地指向与A = c

对应的点

2 个答案:

答案 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]

enter image description here

答案 1 :(得分:0)

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