質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

10020閲覧

3Dプロットの色編集について

Fallout_18

総合スコア124

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/05/15 02:02

以下のようなグラフを作成したのですが、x,yのグリッドとz軸の値の色が同一でよくわからないのですが、
①グリッドの色をz軸の値と別にできるのか
②背景色を透明にしたい
の2点を行いたいのですが、②に関して、このサイトで聞いていた方がおり、拝見したのですが
subplot(行、列、プロット数)を揃えるにあたって、何の行列なのかわからずあやふやにいます。
3Dプロットの色編集自体、あまり多様性がなく、ネットに転がっていいないということもあって、苦戦しています。
イメージ説明

python

1__略__ 2#3D plot 3fig = plt.figure() 4ax = Axes3D(fig) 5X,Y = np.meshgrid(x_list, y_list) 6ax.set_xlabel("x") 7ax.set_ylabel("y") 8ax.set_zlabel("probability") 9 10ax.set_xlim(2*m,0) 11ax.set_ylim(0,2*m) 12ax.set_zlim(0,0.35) 13 14 15 16ax.bar3d(X.ravel(), Y.ravel(), p_map.ravel() ,0.1, 0.1, -p_map.ravel(),color ="red")#,cmap=cm.hot) 17#試してみたこと(失敗) 18#ax.subplot・・・・ 19#ax.w_xaxis.set_pane_color(()) 20#ax.w_yaxis.set_pane_color(()) 21#ax.w_zaxis.set_pane_color(()) 22plt.show()

ax.bar3dの中身の色をredのみにしているので、全てのplotされる値がredになってしまうということはわかるのですが。。。
上記の2点について教えて頂けないでしょうか、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

magichan

2018/05/15 03:09

申し訳ありませんが、『x,yのグリッドとz軸の値の色が同一で』 の部分が理解できません。 グリッド線(グレー)とz軸の色(黒)が似ていることが問題なのですか? 更に質問では『グリッドの色をz軸の値と別にできるのか』とありますが、グリッドの色(グレー)とz軸の値は元々何の関連もないかと思います。
guest

回答1

0

ベストアンサー

①グリッドの色をz軸の値と別にできるのか

やりたいことが理解できているか自信がありませんが、高さに応じてバー色を変えたいということであれば、以下が参考になります。
apply color map to mpl_toolkits.mplot3d.Axes3D.bar3d

②背景色を透明にしたい

以下を参考にしてset_pane_colorでできました。
Changing the background color of the axes planes of a matplotlib 3D plot

Python

1import numpy as np 2from mpl_toolkits.mplot3d import Axes3D 3import matplotlib.pyplot as plt 4import matplotlib.colors as colors 5import matplotlib.cm as cm 6 7# テストデータ 8X,Y = np.mgrid[-5:5:11j,-4:4:9j] 9Z = X ** 2 + Y ** 2 10X,Y,Z = X.ravel(),Y.ravel(),Z.ravel() 11 12# Z値に対応した色を生成 13# apply color map to mpl_toolkits.mplot3d.Axes3D.bar3d 14# https://stackoverflow.com/questions/11950375/apply-color-map-to-mpl-toolkits-mplot3d-axes3d-bar3d 15offset = Z + np.abs(Z.min()) 16fracs = offset.astype(float)/offset.max() 17norm = colors.Normalize(fracs.min(), fracs.max()) 18clrs = cm.cool(norm(fracs)) # autumn, bone, cool, copper, flag, gray, hot, hsv, jet, ... 19 20fig = plt.figure() 21ax = Axes3D(fig) 22ax.bar3d(X, Y, Z, 0.1, 0.1, -Z, color = clrs) 23 24ax.set_xlabel("x") 25ax.set_ylabel("y") 26ax.set_zlabel("z") 27 28ax.set_xlim(X.min(),X.max()) 29ax.set_ylim(Y.min(),Y.max()) 30ax.set_zlim(Z.min(),Z.max()) 31 32# 座標面の色。何色でもよいが透明に 33# Changing the background color of the axes planes of a matplotlib 3D plot 34# https://stackoverflow.com/questions/11448972/changing-the-background-color-of-the-axes-planes-of-a-matplotlib-3d-plot 35ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 36ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 37ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 38plt.savefig('ret.png', bbox_inches='tight') 39plt.show()

イメージ説明

投稿2018/05/15 04:32

編集2018/05/15 06:31
can110

総合スコア38234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fallout_18

2018/05/15 05:58 編集

透明になっていない気がします。。
can110

2018/05/15 06:32

回答を修正しました。詳細は公式マニュアルを参照ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問