def demo_locatable_axes_hard(fig1): from mpl_toolkits.axes_grid1 import SubplotDivider, LocatableAxes, Size divider = SubplotDivider(fig1, 2, 2, 2, aspect=True) # axes for image ax = LocatableAxes(fig1, divider.get_position()) # axes for colorbar ax_cb = LocatableAxes(fig1, divider.get_position()) h = [Size.AxesX(ax), Size.Fixed(0.05), Size.Fixed(0.2)] # main axes # padding, 0.1 inch # colorbar, 0.3 inch v = [Size.AxesY(ax)] divider.set_horizontal(h) divider.set_vertical(v) ax.set_axes_locator(divider.new_locator(nx=0, ny=0)) ax_cb.set_axes_locator(divider.new_locator(nx=2, ny=0)) fig1.add_axes(ax) fig1.add_axes(ax_cb) ax_cb.axis["left"].toggle(all=False) ax_cb.axis["right"].toggle(ticks=True) Z, extent = get_demo_image() im = ax.imshow(Z, extent=extent, interpolation="nearest") plt.colorbar(im, cax=ax_cb) plt.setp(ax_cb.get_yticklabels(), visible=False)
def plot_heatmap(fig2, Z): from mpl_toolkits.axes_grid1 \ import SubplotDivider, LocatableAxes, Size Z = np.flipud(Z) divider = SubplotDivider(fig2, 1, 1, 1, aspect=True) # axes for image ax = LocatableAxes(fig2, divider.get_position()) # axes for colorbar ax_cb = LocatableAxes(fig2, divider.get_position()) h = [ Size.AxesX(ax), # main axes Size.Fixed(0.05), # padding, 0.1 inch Size.Fixed(0.2), # colorbar, 0.3 inch ] v = [Size.AxesY(ax)] divider.set_horizontal(h) divider.set_vertical(v) ax.set_axes_locator(divider.new_locator(nx=0, ny=0)) ax_cb.set_axes_locator(divider.new_locator(nx=2, ny=0)) fig2.add_axes(ax) fig2.add_axes(ax_cb) ax_cb.axis["left"].toggle(all=False) ax_cb.axis["right"].toggle(ticks=True) im = ax.imshow(Z, cmap=cm.coolwarm, extent=(0, 1, 0, 1), interpolation="nearest") plt.colorbar(im, cax=ax_cb) plt.setp(ax_cb.get_yticklabels(), visible=False) mngr = plt.get_current_fig_manager() geom = mngr.window.geometry() x, y, dx, dy = geom.getRect() mngr.window.setGeometry(dx + 200, 100, dx, dy)
def plot2dHeatMap(fig, x, y, z): '''z is a 2d grid; x and y are implicit linspaces''' from mpl_toolkits.axes_grid1 \ import SubplotDivider, LocatableAxes, Size z = np.flipud(z) divider = SubplotDivider(fig, 1, 1, 1, aspect=True) # axes for image ax = LocatableAxes(fig, divider.get_position()) # axes for colorbar ax_cb = LocatableAxes(fig, divider.get_position()) h = [ Size.AxesX(ax), # main axes Size.Fixed(0.05), # padding, 0.1 inch Size.Fixed(0.2), # colorbar, 0.3 inch ] v = [Size.AxesY(ax)] divider.set_horizontal(h) divider.set_vertical(v) ax.set_axes_locator(divider.new_locator(nx=0, ny=0)) ax_cb.set_axes_locator(divider.new_locator(nx=2, ny=0)) fig.add_axes(ax) fig.add_axes(ax_cb) ax_cb.axis["left"].toggle(all=False) ax_cb.axis["right"].toggle(ticks=True) im = ax.imshow(z, cmap=cm.coolwarm, extent=(0, 1, 0, 1), interpolation="nearest") plt.colorbar(im, cax=ax_cb) plt.setp(ax_cb.get_yticklabels(), visible=False) return ax
def demo_locatable_axes_hard(fig1): from mpl_toolkits.axes_grid1 \ import SubplotDivider, LocatableAxes, Size divider = SubplotDivider(fig1, 2, 2, 2, aspect=True) # axes for image ax = LocatableAxes(fig1, divider.get_position()) # axes for colorbar ax_cb = LocatableAxes(fig1, divider.get_position()) h = [ Size.AxesX(ax), # main axes Size.Fixed(0.05), # padding, 0.1 inch Size.Fixed(0.2), # colorbar, 0.3 inch ] v = [Size.AxesY(ax)] divider.set_horizontal(h) divider.set_vertical(v) ax.set_axes_locator(divider.new_locator(nx=0, ny=0)) ax_cb.set_axes_locator(divider.new_locator(nx=2, ny=0)) fig1.add_axes(ax) fig1.add_axes(ax_cb) ax_cb.axis["left"].toggle(all=False) ax_cb.axis["right"].toggle(ticks=True) Z, extent = get_demo_image() im = ax.imshow(Z, extent=extent, interpolation="nearest") plt.colorbar(im, cax=ax_cb) plt.setp(ax_cb.get_yticklabels(), visible=False)
def _divide_axes_grid(mpl_figure, divider, layer_name, inp_size, layer_size, mode, target=False): ''' DOCUMENTATION :param mpl_figure: an instance of matplotlib.figure.Figure :param N: number of layers :param i: layer index :param inp_size: number units in the layer :param layer_size: number of sending units to the layer :param target: include target :return: ''' # provide axes-grid coordinates, image sizes, and titles ax_params = { 'input_': ((0, 0), (1, inp_size), 'input'), 'weights': ((0, 2), (layer_size, inp_size), 'W'), 'biases': ((2, 2), (layer_size, 1), 'b'), 'net_input': ((4, 2), (layer_size, 1), 'net'), 'output': ((6, 2), (layer_size, 1), 'a') } if target: ax_params['target'] = ((8, 2), (layer_size, 1), 't') # define padding size _ = Scaled(.8) # define grid column sizes (left to right): weights, biases, net_input, output, gweight, gbiases, gnet_input, goutput mat_w, cvec_w = Scaled(inp_size), Scaled(1) left_panel = [mat_w, _, cvec_w, _, cvec_w, _, cvec_w, _] cols = left_panel + [cvec_w, _] if target else left_panel t = int(target) if mode > 0: right_panel = [_, mat_w, _, cvec_w, _, cvec_w, _, cvec_w] gax_params = { 'gweights': ((9 + 2 * t, 2), (layer_size, inp_size), 'W\''), 'gbiases': ((11 + 2 * t, 2), (layer_size, 1), 'b\''), 'gnet_input': ((13 + 2 * t, 2), (layer_size, 1), 'net\''), 'goutput': ((15 + 2 * t, 2), (layer_size, 1), 'a\'') } for k, v in gax_params.items(): ax_params[k] = v if mode == 2: right_panel += [_, mat_w, _, cvec_w] ax_params['sgweights'] = ((17 + 2 * t, 2), (layer_size, inp_size), 'sW\'') ax_params['sgbiases'] = ((19 + 2 * t, 2), (layer_size, 1), 'sb\'') cols += right_panel # define grid row sizes (top to bottom): weights, input mat_h, rvec_h = Scaled(layer_size), Scaled(1) rows = [rvec_h, _, mat_h] # make divider divider.set_horizontal(cols) divider.set_vertical(rows) # create axes and locate appropriately img_dict = {} for k, (ax_coords, img_dims, ax_title) in ax_params.items(): ax = LocatableAxes(mpl_figure, divider.get_position()) ax.set_axes_locator( divider.new_locator(nx=ax_coords[0], ny=ax_coords[1])) ax.tick_params(labelbottom=False, labelleft=False) ax.set_xticks([]) ax.set_yticks([]) ax.set_xlabel(ax_title) if k == 'input_' else ax.set_title(ax_title) if k == 'weights': ax.set_ylabel(layer_name) mpl_figure.add_axes(ax) img = ax.imshow(np.zeros(img_dims)) img_dict[k] = img return img_dict