2

x 座標と y 座標、および各座標の計算値で構成される一連のデータがあります。グリッドは不規則なので、今のところ散布図を作成し、値をビンに分割して、下のリンクの画像のように等高線として表示しています。 http://i.stack.imgur.com/m7XHm.png

meshgrid を使用して matplotlib の imshow/contour 機能を使用し、計算された値を補間して、この方法を改良したいと考えています。私はこれを正常に動作させることができますが、データのない画像の領域 (実際の空白) を失い、同じデータのリンクの下の画像に示されているようにそれらを結合するという問題が発生します。 http://i.stack.imgur.com/ZCRog.png

これを行うための最良の方法を見つけようとしましたが、これに関する助けは見つかりませんでした。誰にも提案はありますか?

メッシュグリッドの段階でメソッドを修正する必要があると思いますが、これについてはよくわかりません。私のコードは以下の価値があります

    x=nodalData[:,1] #array of x values from input file
    y=nodalData[:,2] #array of y values from input file

    #define the linear grid
    xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100) 
    xi, yi = np.meshgrid(xi, yi)

    z=Rres #array calculated elsewhere corresponding to x,y pair

    #interpolate
    zi = scipy.interpolate.griddata((x, y), z, (xi, yi), method='cubic')
    #plot    
    plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower', extent=[x.min(), x.max(), y.min(), y.max()]) 
4

1 に答える 1

0

補間のポイントは、データが不十分な地域の妥当な推定値を見つけることであるため、これは奇妙な問題です。新しいプロットに補間値があることを受け入れることをお勧めします。したがって、「データなし」領域が存在しなくなっても問題ありません。data voidsまたは、たとえば最初のプロットをマスクとして使用して、補間を行った後に戻すこともできます。

于 2012-04-23T18:04:22.340 に答える