2017-08-04 29 views
0

imshowの2D np.arrayと、軸を共有するそれぞれのカラーバーをnp.arrayのヒストグラムで表示したいとします。ただし、共有軸がない場合の試みです。matplotlibカラーバーとヒストグラム

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib import cm 
from mpl_toolkits.axes_grid1 import make_axes_locatable 

fig, ax = plt.subplots(figsize=(7,10)) 

data = np.random.normal(0, 0.2, size=(100,100)) 
cax = ax.imshow(data, interpolation='nearest', cmap=cm.jet) 

divider = make_axes_locatable(plt.gca()) 
axBar = divider.append_axes("bottom", '5%', pad='7%') 
axHist = divider.append_axes("bottom", '30%', pad='7%') 

cbar = plt.colorbar(cax, cax=axBar, orientation='horizontal') 
axHist.hist(np.ndarray.flatten(data), bins=50) 

plt.show() 

私はaxHist = divider.append_axes("bottom", '30%', pad='7%', sharex=axBar)axHistsharex引数を使用しようとしたが、これは何とかヒストグラムデータシフト:共有軸xのほかenter image description here

を、どのように1は、同じ色を取るためにヒストグラムを修正することができますカラーマップは、hereに似ていますか?

答えて

2

あなたはsharexずにビン値によるヒストグラムのすべてのパッチを色があります。

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib import cm 
from mpl_toolkits.axes_grid1 import make_axes_locatable 
from matplotlib.colors import Normalize 

fig, ax = plt.subplots(figsize=(7,10)) 

data = np.random.normal(0, 0.2, size=(100,100)) 
cax = ax.imshow(data, interpolation='nearest', cmap=cm.jet) 

divider = make_axes_locatable(plt.gca()) 
axBar = divider.append_axes("bottom", '5%', pad='7%') 
axHist = divider.append_axes("bottom", '30%', pad='7%') 

cbar = plt.colorbar(cax, cax=axBar, orientation='horizontal') 

# get hist data 
N, bins, patches = axHist.hist(np.ndarray.flatten(data), bins=50) 

norm = Normalize(bins.min(), bins.max()) 
# set a color for every bar (patch) according 
# to bin value from normalized min-max interval 
for bin, patch in zip(bins, patches): 
    color = cm.jet(norm(bin)) 
    patch.set_facecolor(color) 

plt.show() 

enter image description here

詳細については、マニュアルページを探す:https://matplotlib.org/xkcd/examples/pylab_examples/hist_colormapped.html

+0

グレート!私は 'N、bins、patches ...'の直下に 'plt.xlim(data.min()、data.max())'を追加して共有軸の問題を解決しました。 –

+0

異形を新しい回答として投稿することができます。 – Serenity

関連する問題