我在散射网格上有三维有限元计算的结果。 我想用python在水平平面上插入这些数据,并使用matplotlib在该平面上绘制结果的轮廓。 输出文件results.dat包含6列,即x,y,z坐标和三个位移分量。我对第三个组件感兴趣。 我想插入一个100 x 100矩形网格,从(-50,10)到(50,110)并位于z = -5。 我想到了以下几种可能性:
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))
为了检查结果是否正确,我应该能够绘制类似
的轮廓图plt.contour(xi,yi,griddata)
但是我无法以plt.contour所需的格式处理xi,yi和griddata