アプリ版:「スタンプのみでお礼する」機能のリリースについて

Pythonを用いて等高線図を作成する方法について
xy座標とその点の高さをまとめた下のようなデータから、Pythonを用いて等高線図を作成するにはどのようにコードを作れば良いでしょうか?

(データのイメージ)
x y 高さ
0 0 2
1 1 5
2 2 3
3 3 2
0 1 1
1 0 4
2 0 3

xとyの範囲を決めてその範囲内で等間隔にメッシュを切り、格子点における高さを何らかの関数で与えてその高さの分布を等高線図として作成するというような方法については例がいくつか見つかるのですが、上記のようなことはどのようにして実現できるでしょうか。

アドバイス頂ければ幸いです。

A 回答 (1件)

scatter,contour,surface等で等高線図を色々と作れます。


以下、scatterの場合のプログラム例です。色々と試せる様にコメント(#)にしている
ところがあります。グラフ2例添付しました。
以下のサンプルプログラムでどんな風になるか、試せると思います。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

#x = np.arange(-3, 3, 0.2)
#y = np.arange(-3, 3, 0.2)
#X, Y = np.meshgrid(x, y)
#Z = np.sin(X)+ np.cos(Y)
X=[0,1,2,3,0,1,2];
Y=[0,1,2,3,1,0,0];
Z=[2,5,3,2,1,4,3]
fig = plt.figure()
ax = Axes3D(fig)
#ax.plot_wireframe(X,Y,Z) # ワイヤーフレームプロット
#ax.plot_surface(X, Y, Z, rstride=1, cstride=1)# サーフェイス
#ax.plot3D(np.ravel(X),np.ravel(Y),np.ravel(Z))
#ax.contour3D(X,Y,Z)
#ax.contourf3D(X,Y,Z)
ax.scatter3D(np.ravel(X),np.ravel(Y),np.ravel(Z))
plt.xlabel('x'); plt.ylabel('y');
plt.show()
「Pythonを用いて等高線図を作成する方」の回答画像1
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!