実現したいこと
対象物把握のため,下記のようなcsvファイル(1列目がx座標,2列目がy座標,3列目がz座標)を読み込んで,xy面にzのヒートマップ(2次元でデータ間を補間したコンター図,散布図ではない)を描きたい.
x y z
-0.175415 0.164429 -0.305176
-0.173950 0.164429 -0.305176
... ... ...
0.231079 -0.140869 -0.242920
0.232178 -0.140869 -0.242920
0.233398 -0.140869 -0.242920
発生している問題・エラーメッセージ
"TypeError: Input z must be at least a 2x2 array."というエラーメッセージが出ます.
該当のソースコード
df = pd.read_csv('testsample.csv', skiprows=1, header=None)
x, y, z = [df.loc[:, i].values for i in range(0, 3)]
xmin = x.min()
xmax = x.max()
ymin = y.min()
ymax = y.max()
msize = 1
ax = np.arange(xmin, xmax, msize)
ay = np.arange(ymin, ymax, msize)
xx, yy = np.meshgrid(ax, ay)
nz = griddata((x, y), z, (xx, yy))
plt.contourf(xx, yy, nz)
plt.show()
試したこと
下記のコードで散布図は作ることはできます.
plt.scatter(x, y, c=z, cmap='jet')
plt.colorbar()
plt.show()
回答1件
あなたの回答
tips
プレビュー