Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 二元等高线水平_Python_Matplotlib_Contour - Fatal编程技术网

Python 二元等高线水平

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

我有一个轮廓数据集,其中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])

这可以通过使用两个级别的
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:填充轮廓至少需要两个级别。我不确定应该增加什么价值,这样我就不会处理奇怪的问题。有了这些级别和虚拟数据,我只看到一个干净的双色图像,没有奇怪的插值线。