ファイ範囲=ヒートマップ半球プロット
これは私が持っているデータセットの例である:
Theta Phi Values
-180 0 0.2
-180 0.5 0.5
... ... ...
-180 -90 1.1
-179.5 0 0.92
... ... ...
0 -90 0.6
... ... ...
180 -89.5 0.17
180 -90 0.12
だから結局、私はこの1つのような同様のプロットを取得したい:
私はコードで半球体を作成する方法を知っています下の私のデータフレームからどのように値を割り当てることができますか?
import matplotlib.pyplot as plt
from matplotlib import cm, colors
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# Create a sphere
r = 2
pi = np.pi
cos = np.cos
sin = np.sin
altitude
phi, theta = np.mgrid[0.0:0.5*pi:180j, 0.0:2.0*pi:720j] # phi = alti, theta = azi
x = r*sin(phi)*cos(theta)
y = r*sin(phi)*sin(theta)
z = r*cos(phi)
#Set colours and render
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(
x, y, z, rstride=4, cstride=4, color='w', alpha=0.1, linewidth=0)
ax.set_xlim([-2.2,2.2])
ax.set_ylim([-2.2,2.2])
ax.set_zlim([0,3])
ax.set_aspect("equal")
ax.plot_wireframe(x, y, z, color="k")
コードはこの
うわー!これは完全に私が探しているものです。私は自分の価値を正規化し、それをfacecolorsの議論に入れようと考えていましたが、私の価値を再構成するのは混乱していました。多くのありがとう@ImportanceOfBeingErnest! –
@ImportanceOfBeingErnest素敵な答えですが、私は上記のようなタイプのプロットに興味があります。あなたは、コードの「形を変える」部分で何をやっているのか詳しく教えてください。この部分は "入力配列をx、y、z配列の形に書き換えます c = inp [:、2] .extape((n_phi、n_theta))T print z.shape print c.shape " –
" c "はx、y、zと同じ形状の配列でなければなりません。したがって、z [yi、xi]の点の色は 'c [yi、xi]'である必要があります。これを取得する方法は、あなたが持っているデータに依存します。ここでの再形成は簡単なオプションです。 – ImportanceOfBeingErnest