等高線と等高線の使用

ルディ

私はポイントのリストを持っています:

pointList = [ [x1,y1,z1], [x2,y2,z2], ... [xn,yn,zn]]

そして、この一連の点の等高線図を描きたいと思います。

私は試します:

import matplotlib.pyplot as plt
pointList = [ [x1,y1,z1], [x2,y2,z2], ... [xn,yn,zn]]
x = [el[0] for el in pointList]
y = [el[1] for el in pointList]
z = [el[2] for el in pointList]
plt.contourf(x,y,z)
plt.show()

しかし、私はこの例外があります:

TypeError: Input z must be a 2D array.

matplotlib のドキュメントで次のことがわかるので、これは奇妙です。

Call signatures:
contour(Z)
make a contour plot of an array Z. The level values are chosen automatically.
contour(X,Y,Z)
X, Y specify the (x, y) coordinates of the surface

それで、なぜ失敗するのか理解できません...

ImportanceOfBeingErnest

contour(Z)、または のいずれの場合も、contour(X,Y,Z)入力Zは 2D 配列である必要があります。

データがグリッド上にない場合は、データをグリッドに内挿する必要があるか、輪郭を使用できません。

簡単な代替手段は、 を使用することtricontourです。

import matplotlib.pyplot as plt
import numpy as np
pointList = [ [x1,y1,z1], [x2,y2,z2], ... [xn,yn,zn]]
pointList = np.array(pointList)
plt.tricontour(pointList[:,0],pointList[:,1],pointList[:,2])
plt.show()

補間されたデータのtricontouraと比較する良い例がありcontourます: tricontour_vs_griddata

次も見ることができます:

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事