我有一个Z值为0或1的轮廓数据集。我想填写Z等于1的区域。我不想进行任何插值。
但是,当我使用该功能时
CS = ax.contour(X1, X2, Z, levels = [1])
它返回一个错误,表明电平不在数据范围内。我不确定如何进行。谢谢。
答案 0 :(得分:0)
对于填充值,使用轮廓线f。此外,1在数据范围之外,因为它是您的最大级别,并且轮廓级别绘制在范围之间。试试:
CS = ax.contourf(X1, X2, Z, levels=[0.2, 0.9])
答案 1 :(得分:0)
这可以通过将contourf
与两个级别一起使用来完成,将较低的级别设置为零,将最高级别设置为小于1,如下所示:
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