【发布时间】:2018-05-13 11:50:07
【问题描述】:
我有一个散布网格上的 3D FEM 计算结果。 我想用 python 在水平平面上插值这些数据,并使用 matplotlib 在该平面上绘制结果的轮廓。 输出文件 results.dat 包含 6 列,即 x、y、z 坐标和位移的三个分量。我对第三个组件感兴趣。 我想在从 (-50,10) 到 (50,110) 且位于 z=-5 的 100 x 100 矩形网格上进行插值。 我想到了以下可能:
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
【问题讨论】:
标签: python matplotlib multidimensional-array interpolation contour