分散メッシュ上に3D FEM計算の結果があります。 私はそれらのデータをpythonで水平方向の平面上に補間し、その平面上の結果の輪郭線をmatplotlibを使ってプロットしたいと思います。 出力ファイルresults.datには、6つの列、つまりx、y、z座標と変位の3つの要素が含まれています。私は第3の要素に興味があります。 私は、(-50,10)から(50,110)まで広がり、z = -5に位置する100 x 100の長方形のグリッドで補間したいと思います。 私は、次の可能性を考えている:結果が正しい場合、私はscipyとmatplotlibを使って散乱した3Dデータの補間とプロット
plt.contour(xi,yi,griddata)
のようなものをやって等高線をプロットすることができるはずチェックするために
import numpy as np
from scipy.interpolate import grid data
res = np.loadtxt('results.dat')
points = res[:,0:3]
values = res[:,-1]
xi,yi,zi = np.mgrid[-50.:50.:101j,10.:100.:101j,-5:-5:1j]
gridres = griddata(points, values, (xi, yi, zi))
が、私が処理することはできませんよフォーマットでXI、YIとgriddataは、私は最終的に私が望む結果を得るために、私がしなければならない、ということを発見した試行錯誤によってplt.contour
私はここでxとyを混同していると思います。 – ImportanceOfBeingErnest
なぜそれを言うのですか?私はそうは思わない – user2078621
もちろん私はあなたのデータを知らない。しかし、 'gridres'を転置する必要があれば、xがyであり、yがxであることを示します。 – ImportanceOfBeingErnest