Python 二元等高线水平
我有一个轮廓数据集,其中Z值为0或1。我想填充Z等于1的区域。我不想做任何插值 但是,当我使用该函数时Python 二元等高线水平,python,matplotlib,contour,Python,Matplotlib,Contour,我有一个轮廓数据集,其中Z值为0或1。我想填充Z等于1的区域。我不想做任何插值 但是,当我使用该函数时 CS = ax.contour(X1, X2, Z, levels = [1]) 它返回级别不在数据范围内的错误。我不知道如何进行。谢谢。对于填充的值,请使用contourf。此外,1不在数据范围内,因为它是您的最大标高,而等高线标高在范围之间绘制。尝试: CS = ax.contourf(X1, X2, Z, levels=[0.2, 0.9]) 这可以通过使用两个级别的cont
CS = ax.contour(X1, X2, Z, levels = [1])
它返回级别不在数据范围内的错误。我不知道如何进行。谢谢。对于填充的值,请使用contourf。此外,1不在数据范围内,因为它是您的最大标高,而等高线标高在范围之间绘制。尝试:
CS = ax.contourf(X1, X2, Z, levels=[0.2, 0.9])
这可以通过使用两个级别的
contourf
来实现,将较低级别设置为零,将最高级别设置为小于一,如下所示:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, x)
Z = np.sin(X)*np.sin(Y)
levels = np.linspace(-1, 1, 400)
zdata = np.sin(8*X)*np.sin(8*Y)
plt.contourf(X, Y, 1*(zdata>=0.5), levels=[0,.9]) # polka dot z-values here are 0s and 1s
如果需要填充轮廓,则需要使用
contourf
。如果不希望沿数据边缘进行任何插值,则应使用pcolormesh
。这是否回答了您的问题?我得到错误:ValueError:填充轮廓至少需要两个级别。我不确定应该增加什么价值,这样我就不会处理奇怪的问题。有了这些级别和虚拟数据,我只看到一个干净的双色图像,没有奇怪的插值线。