以下のような2次元配列の値をマッピングしたときに、
python
1p_map=[[0. 0. 0. 0. 0.00390625 0. 0. 0. 0. ] 2 [0. 0. 0. 0.0390625 0. 0.0390625 0. 0. 0. ] 3 [0. 0. 0.0703125 0. 0.015625 0. 0.0703125 0. 0. ] 4 [0. 0.0390625 0. 0.078125 0. 0.078125 0. 0.0390625 0. ] 5 [0.00390625 0. 0.015625 0. 0.015625 0. 0.015625 0. 0.00390625] 6 [0. 0.0390625 0. 0.078125 0. 0.078125 0. 0.0390625 0. ] 7 [0. 0. 0.0703125 0. 0.015625 0. 0.0703125 0. 0. ] 8 [0. 0. 0. 0.0390625 0. 0.0390625 0. 0. 0. ] 9 [0. 0. 0. 0. 0.00390625 0. 0. 0. 0. ]]
import matplotlib.pyplot as plt plt.imshow(p_map,cmap="cool") plt.colorbar() plt.show()
としてやれば、
となりますが、このときに0の値を除いて、0以上の値だけをプロットしたいのですが(背景色を例えば黒に指定してプロットしたい)0だけを除くことはこの平面プロットだと不可能なのでしょうか?
3次元プロットの時は、
python
1fig = plt.figure() 2ax = Axes3D(fig, rect=(0.1,0.1,0.8,0.8)) 3..... 4ax.w_xaxis.set_pane_color((0, 0, 0, 0)) 5ax.w_yaxis.set_pane_color((0, 0, 0, 0)) 6ax.w_zaxis.set_pane_color((0, 0, 0, 1)) 7### 8mask = p_map>0.0 9ax.bar3d(X[mask].ravel(),Y[mask].ravel(), 0, 0.2,0.2, p_map[mask].ravel() ,color=clrs)
などのようにしてやればよかったのですが、、、
今回はデータそのものが平面として表れるので、0を消すのは厳しい(?)。
ご教授いただければ幸いです。
この中で左側が背景色にしたい色に近くて、全体的な色調が好みのものを https://matplotlib.org/tutorials/colors/colormaps.html
私の質問はそうではないと思うのですが。。
回答1件
あなたの回答
tips
プレビュー