Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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的matplotlib.pyplot.contourf分散x、y、z_Python_Matplotlib - Fatal编程技术网

通过python的matplotlib.pyplot.contourf分散x、y、z

通过python的matplotlib.pyplot.contourf分散x、y、z,python,matplotlib,Python,Matplotlib,大多数pyplot示例都使用线性数据,但如果数据是分散的呢? x=3,7,9 y=1,4,5 z=20,3,7 contourf的更好网格 席= NP.LeSnimeMex-1,Max x + 1, 9 yi=np.linspaceminy-1,maxy+1,9 十、 Y=np.xi,yi 现在z数据被插值到网格上。 在这里,numpy.interp没有什么帮助,而 Zi= MatPultLIB,MLab.GrDATAX,Y,Z,席,彝,Int=线性 返回相当奇怪的结果 下面第二个答案中的sci

大多数pyplot示例都使用线性数据,但如果数据是分散的呢? x=3,7,9 y=1,4,5 z=20,3,7

contourf的更好网格 席= NP.LeSnimeMex-1,Max x + 1, 9 yi=np.linspaceminy-1,maxy+1,9 十、 Y=np.xi,yi

现在z数据被插值到网格上。 在这里,numpy.interp没有什么帮助,而 Zi= MatPultLIB,MLab.GrDATAX,Y,Z,席,彝,Int=线性 返回相当奇怪的结果

下面第二个答案中的scipy.interpolate.griddata cubic需要其他东西来返回数据,而不是nils

对于自定义级别数据,countourf将只在数据网格中工作。如果数据是分散的,则需要创建与数据匹配的插值网格,如下所示:注意,需要使用scipy来执行插值

import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt
import numpy.ma as ma
from numpy.random import uniform, seed

# your data
x = [3,7,9]
y = [1,4,5]
z = [20,3,7]

# define grid.
xi = np.linspace(0,10,300)
yi = np.linspace(0,6,300)
# grid the data.
zi = griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')
# contour the gridded data, plotting dots at the randomly spaced data points.
CS = plt.contour(xi,yi,zi,15,linewidths=0.5,colors='k')
CS = plt.contourf(xi,yi,zi,15,cmap=plt.cm.jet)
plt.colorbar() # draw colorbar
# plot data points.
plt.scatter(x,y,marker='o',c='b',s=5)
plt.xlim(min(x),max(x))
plt.ylim(min(y),max(y))
plt.title('griddata test (%d points)' % len(x))
plt.show()
有关该代码的来源,请参阅。

countourf将仅用于数据网格。如果数据是分散的,则需要创建与数据匹配的插值网格,如下所示:注意,需要使用scipy来执行插值

import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt
import numpy.ma as ma
from numpy.random import uniform, seed

# your data
x = [3,7,9]
y = [1,4,5]
z = [20,3,7]

# define grid.
xi = np.linspace(0,10,300)
yi = np.linspace(0,6,300)
# grid the data.
zi = griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')
# contour the gridded data, plotting dots at the randomly spaced data points.
CS = plt.contour(xi,yi,zi,15,linewidths=0.5,colors='k')
CS = plt.contourf(xi,yi,zi,15,cmap=plt.cm.jet)
plt.colorbar() # draw colorbar
# plot data points.
plt.scatter(x,y,marker='o',c='b',s=5)
plt.xlim(min(x),max(x))
plt.ylim(min(y),max(y))
plt.title('griddata test (%d points)' % len(x))
plt.show()
有关该代码的来源,请参阅。

发生的情况如下:

虽然轮廓需要网格数据,但我们可以将散布数据分为网格,然后使用屏蔽阵列屏蔽空白区域。我在下面的代码中对此进行了模拟,创建了一个随机数组,然后使用它来屏蔽底部显示的测试数据集。大部分代码取自

情况就是这样:

虽然轮廓需要网格数据,但我们可以将散布数据分为网格,然后使用屏蔽阵列屏蔽空白区域。我在下面的代码中对此进行了模拟,创建了一个随机数组,然后使用它来屏蔽底部显示的测试数据集。大部分代码取自


问题是如何通过自定义级别的contourf填充颜色显示此数据网格+数据,无轮廓,然后应用到mpl_工具包的带有shapefile的Basemap,但这是另一个步骤。您的重点是什么?您只需要使用掩码数组,如下所述。如果你想要填充轮廓,只需要加上CS2=plt.contourfX,Y,Z,20。在我们做掩蔽之前,我们需要Z在zi上插值,对吗?数据x=3,7,9,y=1,4,5,z=20.3,7网格:席=np-林空间EMX-1,Max x + 1, 9,y= npLnSuleMeMy-1,MAXY + 1, 9 x,y= np.MeHGRIDXI,Yi时间为Z>>Zi网格网格NUMP.ZI= MatPultLIB .MLab.GrdDATAX,Y,Z,XI,Ii,InP=线性ScPy.Idtual.GrIDATA数据立方,从第二个答案需要其他数据来返回而不是NILLSY问题是如何通过自定义的级别,席形填充的颜色显示数据网格+数据,没有轮廓,然后用SabFEFLE应用到MPLA工具包的BaseMax,但这是另一个步骤。你卡在上面的是什么?您只需要使用掩码数组,如下所述。如果你想要填充轮廓,只需要加上CS2=plt.contourfX,Y,Z,20。在我们做掩蔽之前,我们需要Z在zi上插值,对吗?数据x=3,7,9,y=1,4,5,z=20.3,7网格:席=np-林空间EMX-1,Max x + 1, 9,y= npLnSuleMeMy-1,MAXY + 1, 9 x,y= np.MeHGRIDXI,Yi时间为Z>>Zi网格网格NUMP.Zi= MatPultLIB,MLab.GrDATAX,Y,Z,席,彝,interp=linear scipy.interpolate.griddata uuData从下面的第二个答案返回数据需要其他东西,而不是nilsLet检查numpy.interp和matplotlib.mlab.griddata在这里可以做什么。即使使用固定的xi/yi范围,zi也充满了nan,contour对我来说没有任何效果,在确定阵列的范围之后。席= NP,林空间0,10300;yi=np.linspace0,6300。让我们检查一下numpy.interp和更直接的matplotlib.mlab.griddata在这里可以做什么。即使在固定的xi/yi范围内,在固定数组范围后,zi也充满了nan,而contour对我来说不起任何作用。席= NP,林空间0,10300;yi=np.linspace0,6300。