8

imshow() プロットにデータを入れようとしています。私の問題は、データが MxN 配列としてではなく、3xN 配列 (x および y 座標と値) として提供されることです。ポイントは通常のグリッドとして配置されていませんが、[xmin、xmax、ymin、および ymax]=[-pi/2,pi/2,0,3.5] 内にあります。

In [117]: shape(data)
Out[117]: (3L, 102906L)

そのデータから素敵な画像プロットを取得するにはどうすればよいですか? 助けてくれてありがとう。

ところで、データはロッドの表面の温度値を軸方向と方位角の位置の関数として表しています。cfd メッシュを考えてみてください。

4

1 に答える 1

12

補間には griddata-method を使用することをお勧めします。サンプルは次のとおりです。

import numpy as np
from matplotlib.mlab import griddata
import matplotlib.pyplot as plt

xs0 = np.random.random((1000)) * np.pi - np.pi/2
ys0 = np.random.random((1000)) * 3.5
zs0 = np.random.random((1000))

N = 30j
extent = (-np.pi/2,np.pi/2,0,3.5)

xs,ys = np.mgrid[extent[0]:extent[1]:N, extent[2]:extent[3]:N]

resampled = griddata(xs0, ys0, zs0, xs, ys)

plt.imshow(resampled.T, extent=extent)
plt.plot(xs0, ys0, "r.")
plt.plot(xs, ys, "b.")
plt.title("imshow for irregularly spaced data using griddata")
plt.show()

3*X-array から 3 つの X-arrays への移行は明らかだと思います。

結果は次のとおりです。

サンプル

赤い点はデータの「元の」位置を示し、青い点は現在等間隔のデータを示しています。

griddata は、マスクされた配列を返します。補間を評価できないすべてのポイントはマスクされ、白い領域としてプロットされます。

HTH、トルステン

于 2013-01-03T14:11:57.463 に答える