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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3126閲覧

surface plot のように、色の変化をbar3dで行う

Fallout_18

総合スコア124

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/02/07 11:19

イメージ説明
上の図のbarにsurfaceプロットのように色が下からだんだん変化していくような配色にしたいのですが、可能なのでしょうか?

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 c 6 7n = 4 8z = np.array([[-1,0,-3,0],[4,5,-2,0],[1,2,4,0],[1,3,0,5]])/10 9x_list = np.array([i for i in range(0,4)]) 10y_list = np.array([i for i in range(0,4)]) 11 12###### 13ax = Axes3D(fig) 14x,y = np.meshgrid(x_list,y_list) 15X,Y,Z = x.ravel(),y.ravel(),z.ravel() 16#mask = (dz > 0.0) 17offset = Z + np.abs(Z.min()) 18fracs = offset.astype(float)/offset.max() 19norm = colors.Normalize(fracs.min(), fracs.max()) 20clrs = cm.cool(norm(fracs)) # autumn, bone, cool, copper, flag, gray, hot, hsv, jet, ... 21 22fig = plt.figure() 23ax = Axes3D(fig) 24 25#ax.plot_surface(x,y , np.zeros([n,n]),color="white") 26ax.bar3d(X, Y, 0, 0.4,0.4, Z, color = clrs) 27 28#ax.set_xlabel("x") 29#ax.set_ylabel("y") 30#ax.set_zlabel("z") 31 32ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 33ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 34ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 35 36plt.xticks([0,1,2,3], ["a","b","c","d"]) 37plt.yticks([0,1,2,3], ["e","f","g","h"]) 38ax.set_zticks(np.arange(-0.5,1,0.5)) 39ax.set_xlim([0,3.5]) 40ax.set_ylim([0,3.5]) 41ax.set_zlim([-0.5,0.5])

可能でしたら、ご指導のほどお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

原則不可能です。

力技でやってる人はググったら出てきました。

https://stackoverflow.com/questions/43100082/how-to-plot-gradient-fill-on-the-3d-bars-in-matplotlib

投稿2019/02/07 11:37

編集2019/02/07 11:37
hayataka2049

総合スコア30933

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問