Here is a code I have to plot geolocalised data on a Basemap. I would like to add a histogram on the left of my Basemap in order to show the density related to each degree of latitude.
data = np.zeros((5000,3))
data[:,0]=np.random.uniform(low=-180,high=180,size=(5000,))
data[:,1]=np.random.uniform(low=-60,high=90,size=(5000,))
data[:,2] =np.random.uniform(low=0,high=100000,size=(5000,))
fig = plt.figure(facecolor='w')
grid = plt.GridSpec(4, 4, hspace=0.2, wspace=0.2)
main_ax = fig.add_subplot(grid[:-1, 1:])
m = Basemap(projection = 'cyl', llcrnrlat = -60., urcrnrlat = 90., llcrnrlon = -180., urcrnrlon = 180., resolution ='l')
x, y =m(data[:,0], data[:,1])
m.scatter(x, y, marker='.', s = 0.02, c = data_lac[:,2], cmap = 'hot_r', edgecolor = 'none')
m.fillcontinents(color='grey', lake_color=None, ax=None, alpha=0.1)
parallels=np.arange(-60.,90.,10)
m.drawparallels(parallels, labels =[True, False, False, True], linewidth=0.)
m.drawmeridians(np.arange(-180.,180.,20),labels =[True, False, False, True], linewidth=0. )
m.colorbar()
y_hist = fig.add_subplot(grid[:-1, 0], xticklabels=[], sharey=main_ax)
# histogram on the attached axes
y_hist.hist(data[:,1], 150, histtype='stepfilled', orientation='horizontal', color='blue',alpha=0.2)
y_hist.invert_xaxis()
plt.tight_layout()
plt.show()
I have issues with the size of my histogram that does not fit with the size of the map nor the latitude (if I just want from -60° to 90°). Moreover, the y-axe is not shared between Basemap and the histogram. I also tried with the GridSpec format but the result is the same.

