matplotlibの3次元プロットに高さに応じて色を付ける
Numpy, scipyで計算した結果を表示するときはMatplotlibを使っています。
この前、電波の散乱点を可視化するため、3次元の散布図を出す必要があったのですが、3次元表示をすると奥行きがわからないため、なんだかよくわからない絵になってしまいがちと思います。
せめて高さに応じて各点を色付けできたらもう少しわかりやすくなるかも、と思ってやり方を調べました。
点にグラデーションで色付けする方法
見出しの方法がすぐにヒットしました。
stackoverflow.com
カラーテーブルを指定して、入力順(配列の順番)にグラデーションで色を付ける方法です。
zに応じて色を付けるように変更
こちらを少し変えて、colに入る値をzに関連づけてあっさり達成。
col = cm(z)
注意点としてはカラーマップに突っ込む値は0-1の間だそうな。
上ページでは、始めからそうなっているため、何もしていない。