グリッドデータ エラー
(から適応: xyz データからの Matplotlib 輪郭: griddata 無効なインデックス)
一連の座標に対応するいくつかの値のマトリックスがあります。外部ファイルからデータを読み込み、griddata オブジェクトを使用してポイント間を補間したいと考えています。ただし、コードを実行するとエラーが発生します。
griddata からの「builtins.IndexError: インデックス 0 は、サイズ 0 の軸 0 の範囲外です」。私はこれが何を意味するのか分かりませんか?
サンプルコードの一部:
def main():
#https://stackoverflow.com/questions/13781025/matplotlib-contour-from-xyz-data-griddata-invalid-index
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml
ndata = 121
ny, nx = 100, 200
xmin, xmax = 0, 10
ymin, ymax = 0, 10
Data = np.loadtxt('Data.dat')
Data = Data.flatten(1)
x = np.array([j for i in np.arange(0,11,1) for j in np.arange(0,11,1)])
y = np.array([j for i in np.arange(0,11,1) for j in np.arange(0,11,1)])
#x = np.random.randint(xmin, xmax, ndata)
#y = np.random.randint(ymin, ymax, ndata)
xi = np.linspace(xmin, xmax, nx)
yi = np.linspace(ymin, ymax, ny)
zi = ml.griddata(x, y, Data, xi, yi)
plt.contour(xi, yi, zi, 15, linewidths = 0.5, colors = 'k')
plt.pcolormesh(xi, yi, zi, cmap = plt.get_cmap('rainbow'))
plt.scatter(x, y, marker = 'o', c = 'b', s = 5, zorder = 10)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()
Data.dat はhttp://pastebin.com/Uk8SHA1Fから入手できます。
x または y のいずれかを指定する内包表記で、ランダム座標 (コメント) である他の座標と組み合わせて使用するとどのように機能するかに注意してください。