0

X 座標と Y 座標のセットがあり、各ポイントには異なるピクセル値 (Z 量) があります。ラスターまたは等高線図を使用してこれらの値をプロットしたいと思います。

ピクセル値と X および Y 座標の間に数学的な関係がないため、これを行うのは困難です。

x 値と y 値の範囲の配列を作成し、連結された x と y 文字列を使用して z の値を検索できる辞書を作成しようとしました。現在、インデックスの問題が発生しており、これを達成するためのより良い方法があるかどうか疑問に思っています。

これまでの私のコードは次のとおりです。

import matplotlib.pyplot as plt
import numpy as np

XY_Zpoints = {'11':8,
             '12':8,
             '13':8,
             '14':6,
             '21':6,
             '22':8,      
             '23':6,
             '24':6,
             '31':8,
             '32':3, 
             '33':8,
             '34':6,
             '41':8,
             '42':3, 
             '43':3,
             '44':8,
                   }

x, y = np.meshgrid(np.linspace(1,4,4), np.linspace(1,4,4))

z = XY_Zpoints[str(x)+str(y)]

# Plot the grid
plt.imshow(z)
plt.spectral()
plt.show()

あなたが提供できる助けを前もってありがとう!

4

1 に答える 1

0

辞書の代わりに、各ピクセル値の位置が x 座標と y 座標に対応する numpy 配列を使用できます。あなたの例では、この配列は次のようになります。

z = np.array([[8, 8, 8, 6], [6, 8, 6, 6], [8, 3, 8, 6], [8, 3, 3, 8]])

たとえば、x = 2 および y = 3 のピクセル値にアクセスするには、次のようにします。

x = 2
y = 3
pixel = z[x-1][y - 1]

z は次のように表示できます。

imshow(z)
于 2013-11-08T16:29:04.807 に答える