上の図の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])
可能でしたら、ご指導のほどお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 17:31 編集