From 2b020820151697543b724b34bcf5034e50bd9e82 Mon Sep 17 00:00:00 2001 From: mzwiessele Date: Mon, 5 Oct 2015 18:47:54 +0100 Subject: [PATCH] [plotting] gradient plot added --- GPy/core/gp.py | 17 +- GPy/plotting/__init__.py | 3 + GPy/plotting/abstract_plotting_library.py | 25 ++ GPy/plotting/gpy_plot/latent_plots.py | 222 ++++++++++-------- .../controllers/axis_event_controller.py | 8 +- .../controllers/imshow_controller.py | 9 +- GPy/plotting/matplot_dep/defaults.py | 8 +- GPy/plotting/matplot_dep/plot_definitions.py | 23 +- GPy/testing/plotting_tests.py | 3 +- .../baseline/gplvm_gradient.png | Bin 0 -> 14441 bytes .../plotting_tests/baseline/gplvm_latent.png | Bin 29926 -> 29924 bytes .../baseline/gplvm_magnification.png | Bin 42393 -> 42418 bytes 12 files changed, 193 insertions(+), 125 deletions(-) create mode 100644 GPy/testing/plotting_tests/baseline/gplvm_gradient.png diff --git a/GPy/core/gp.py b/GPy/core/gp.py index 01e09739..16b0ca0f 100644 --- a/GPy/core/gp.py +++ b/GPy/core/gp.py @@ -294,7 +294,7 @@ class GP(Model): likelihood = self.likelihood return likelihood.predictive_quantiles(m, v, quantiles, Y_metadata=Y_metadata) - def predictive_gradients(self, Xnew): + def predictive_gradients(self, Xnew, kern=None): """ Compute the derivatives of the predicted latent function with respect to X* @@ -311,16 +311,19 @@ class GP(Model): :rtype: [np.ndarray (N*, Q ,D), np.ndarray (N*,Q) ] """ - dmu_dX = np.empty((Xnew.shape[0],Xnew.shape[1],self.output_dim)) + if kern is None: + kern = self.kern + mean_jac = np.empty((Xnew.shape[0],Xnew.shape[1],self.output_dim)) + for i in range(self.output_dim): - dmu_dX[:,:,i] = self.kern.gradients_X(self.posterior.woodbury_vector[:,i:i+1].T, Xnew, self.X) + mean_jac[:,:,i] = kern.gradients_X(self.posterior.woodbury_vector[:,i:i+1].T, Xnew, self._predictive_variable) # gradients wrt the diagonal part k_{xx} - dv_dX = self.kern.gradients_X(np.eye(Xnew.shape[0]), Xnew) + dv_dX = kern.gradients_X(np.eye(Xnew.shape[0]), Xnew) #grads wrt 'Schur' part K_{xf}K_{ff}^{-1}K_{fx} - alpha = -2.*np.dot(self.kern.K(Xnew, self.X),self.posterior.woodbury_inv) - dv_dX += self.kern.gradients_X(alpha, Xnew, self.X) - return dmu_dX, dv_dX + alpha = -2.*np.dot(kern.K(Xnew, self._predictive_variable), self.posterior.woodbury_inv) + dv_dX += kern.gradients_X(alpha, Xnew, self._predictive_variable) + return mean_jac, dv_dX def predict_jacobian(self, Xnew, kern=None, full_cov=True): diff --git a/GPy/plotting/__init__.py b/GPy/plotting/__init__.py index b90bf938..2a297f28 100644 --- a/GPy/plotting/__init__.py +++ b/GPy/plotting/__init__.py @@ -46,10 +46,13 @@ if config.get('plotting', 'library') is not 'none': from ..models import bayesian_gplvm_minibatch GPLVM.plot_prediction_fit = gpy_plot.latent_plots.plot_prediction_fit GPLVM.plot_latent = gpy_plot.latent_plots.plot_latent + GPLVM.plot_steepest_gradient_map = gpy_plot.latent_plots.plot_steepest_gradient_map BayesianGPLVM.plot_latent = gpy_plot.latent_plots.plot_latent BayesianGPLVM.plot_prediction_fit = gpy_plot.latent_plots.plot_prediction_fit + BayesianGPLVM.plot_steepest_gradient_map = gpy_plot.latent_plots.plot_steepest_gradient_map bayesian_gplvm_minibatch.BayesianGPLVMMiniBatch.plot_latent = gpy_plot.latent_plots.plot_latent bayesian_gplvm_minibatch.BayesianGPLVMMiniBatch.plot_prediction_fit = gpy_plot.latent_plots.plot_prediction_fit + bayesian_gplvm_minibatch.BayesianGPLVMMiniBatch.plot_steepest_gradient_map = gpy_plot.latent_plots.plot_steepest_gradient_map from ..kern import Kern #Kern.plot_covariance = gpy_plot.kern_plots.plot_kern diff --git a/GPy/plotting/abstract_plotting_library.py b/GPy/plotting/abstract_plotting_library.py index a03d8591..b7b0c1aa 100644 --- a/GPy/plotting/abstract_plotting_library.py +++ b/GPy/plotting/abstract_plotting_library.py @@ -189,6 +189,31 @@ class AbstractPlottingLibrary(object): """ raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library") + def annotation_heatmap(self, canvas, X, annotation, extent, label=None, plot_function=None, resolution=15, **kwargs): + """ + Plot an annotation heatmap. That is like an imshow, but + put the text of the labels inside the cells of the heatmap (centered). + + if the labels are not given, just plot the heatmap. + + if plot_function is not None, return an interactive updated + heatmap, which updates on axis events, so that one can zoom in + and out and the heatmap gets updated. See the matplotlib implementation + in matplot_dep.controllers. + + the plot_function returns a pair (X, annotation) to plot, when called with + a new input X (which would be the grid, which is visible on the plot + right now) + + :param canvas: the canvas to plot on + :param array-like annotation: the annotation labels for the heatmap + :param [horizontal_min,horizontal_max,vertical_min,vertical_max] extent: the extent of where to place the heatmap + :param str label: the label for the heatmap + :param plot_function: the function, which generates new data for given input locations X + :param int resolution: the resolution of the interactive plot redraw - this is only needed when giving a plot_function + """ + raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library") + def contour(self, canvas, X, Y, C, Z=None, color=None, label=None, **kwargs): """ Make a contour plot at (X, Y) with heights/colors stored in C on the canvas. diff --git a/GPy/plotting/gpy_plot/latent_plots.py b/GPy/plotting/gpy_plot/latent_plots.py index a8bb2be6..06f3f226 100644 --- a/GPy/plotting/gpy_plot/latent_plots.py +++ b/GPy/plotting/gpy_plot/latent_plots.py @@ -111,15 +111,74 @@ def _plot_prediction_fit(self, canvas, plot_limits=None, else: raise NotImplementedError("Cannot plot in more then one dimension.") return plots + +def _plot_latent_scatter(self, canvas, X, input_1, input_2, labels, marker, num_samples, **kwargs): + from .. import Tango + Tango.reset() + if labels is None: + labels = np.ones(self.num_data) + X, labels = subsample_X(X, labels, num_samples) + scatters = [] + for x, y, this_label, _, m in scatter_label_generator(labels, X, input_1, input_2, marker): + update_not_existing_kwargs(kwargs, pl.defaults.latent_scatter) + scatters.append(pl.scatter(canvas, x, y, marker=m, color=Tango.nextMedium(), label=this_label, **kwargs)) + return scatters + +def plot_latent_scatter(self, labels=None, + which_indices=None, + legend=True, + plot_limits=None, + marker='<>^vsd', + num_samples=1000, + **kwargs): + """ + Plot a scatter plot of the latent space. + + :param array-like labels: a label for each data point (row) of the inputs + :param (int, int) which_indices: which input dimensions to plot against each other + :param bool legend: whether to plot the legend on the figure + :param plot_limits: the plot limits for the plot + :type plot_limits: (xmin, xmax, ymin, ymax) or ((xmin, xmax), (ymin, ymax)) + :param str marker: markers to use - cycle if more labels then markers are given + :param kwargs: the kwargs for the scatter plots + """ + input_1, input_2 = self.get_most_significant_input_dimensions(which_indices) + canvas, kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **kwargs) + X, _, _ = get_x_y_var(self) + scatters = _plot_latent_scatter(self, canvas, X, input_1, input_2, labels, marker, num_samples, **kwargs) + return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend and (labels is not None)) + + + + +def _plot_magnification(self, canvas, input_1, input_2, Xgrid, + xmin, xmax, resolution, + mean=True, covariance=True, + kern=None, + **imshow_kwargs): + def plot_function(x): + Xtest_full = np.zeros((x.shape[0], Xgrid.shape[1])) + Xtest_full[:, [input_1, input_2]] = x + mf = self.predict_magnification(Xtest_full, kern=kern, mean=mean, covariance=covariance) + return mf.reshape(resolution, resolution).T[::-1, :] + + imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.magnification) + Y = plot_function(Xgrid[:, [input_1, input_2]]) + view = pl.imshow(canvas, Y, + (xmin[0], xmin[1], xmax[1], xmax[1]), + None, plot_function, resolution, + vmin=Y.min(), vmax=Y.max(), + **imshow_kwargs) + return view def plot_magnification(self, labels=None, which_indices=None, - resolution=60, legend=True, + resolution=60, marker='<>^vsd', legend=True, plot_limits=None, updates=False, mean=True, covariance=True, - kern=None, marker='<>^vsd', - num_samples=1000, - imshow_kwargs=None, **kwargs): + kern=None, num_samples=1000, + imshow_kwargs=None, + **scatter_kwargs): """ Plot the magnification factor of the GP on the inputs. This is the density of the GP as a gray scale. @@ -127,6 +186,7 @@ def plot_magnification(self, labels=None, which_indices=None, :param array-like labels: a label for each data point (row) of the inputs :param (int, int) which_indices: which input dimensions to plot against each other :param int resolution: the resolution at which we predict the magnification factor + :param str marker: markers to use - cycle if more labels then markers are given :param bool legend: whether to plot the legend on the figure :param plot_limits: the plot limits for the plot :type plot_limits: (xmin, xmax, ymin, ymax) or ((xmin, xmax), (ymin, ymax)) @@ -134,48 +194,41 @@ def plot_magnification(self, labels=None, which_indices=None, :param bool mean: use the mean of the Wishart embedding for the magnification factor :param bool covariance: use the covariance of the Wishart embedding for the magnification factor :param :py:class:`~GPy.kern.Kern` kern: the kernel to use for prediction - :param str marker: markers to use - cycle if more labels then markers are given :param int num_samples: the number of samples to plot maximally. We do a stratified subsample from the labels, if the number of samples (in X) is higher then num_samples. :param imshow_kwargs: the kwargs for the imshow (magnification factor) :param kwargs: the kwargs for the scatter plots """ input_1, input_2 = self.get_most_significant_input_dimensions(which_indices) + canvas, scatter_kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **scatter_kwargs) + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) + scatters = _plot_latent_scatter(self, canvas, X, input_1, input_2, labels, marker, num_samples, **scatter_kwargs) + if imshow_kwargs is None: imshow_kwargs = {} + view = _plot_magnification(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, mean, covariance, kern, **imshow_kwargs) + plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend and (labels is not None), xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) + _wait_for_updates(view, updates) + return plots - from .. import Tango - Tango.reset() - - if labels is None: - labels = np.ones(self.num_data) - legend = False # No legend if there is no labels given - - canvas, kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **kwargs) - X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) - X, labels = subsample_X(X, labels) - + + +def _plot_latent(self, canvas, input_1, input_2, Xgrid, + xmin, xmax, resolution, + kern=None, + **imshow_kwargs): def plot_function(x): - Xtest_full = np.zeros((x.shape[0], X.shape[1])) + Xtest_full = np.zeros((x.shape[0], Xgrid.shape[1])) Xtest_full[:, [input_1, input_2]] = x - mf = self.predict_magnification(Xtest_full, kern=kern, mean=mean, covariance=covariance) - return mf + mf = np.log(self.predict(Xtest_full, kern=kern)[1]) + return mf.reshape(resolution, resolution).T[::-1, :] - imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.magnification) + imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.latent) Y = plot_function(Xgrid[:, [input_1, input_2]]).reshape(resolution, resolution).T[::-1, :] view = pl.imshow(canvas, Y, (xmin[0], xmin[1], xmax[1], xmax[1]), None, plot_function, resolution, vmin=Y.min(), vmax=Y.max(), **imshow_kwargs) - - scatters = [] - for x, y, this_label, _, m in scatter_label_generator(labels, X, input_1, input_2, marker): - update_not_existing_kwargs(kwargs, pl.defaults.latent_scatter) - scatters.append(pl.scatter(canvas, x, y, marker=m, color=Tango.nextMedium(), label=this_label, **kwargs)) - - plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) - _wait_for_updates(view, updates) - return plots - + return view def plot_latent(self, labels=None, which_indices=None, resolution=60, legend=True, @@ -183,7 +236,7 @@ def plot_latent(self, labels=None, which_indices=None, updates=False, kern=None, marker='<>^vsd', num_samples=1000, - imshow_kwargs=None, **kwargs): + imshow_kwargs=None, **scatter_kwargs): """ Plot the latent space of the GP on the inputs. This is the density of the GP posterior as a grey scale and the @@ -200,53 +253,44 @@ def plot_latent(self, labels=None, which_indices=None, :param str marker: markers to use - cycle if more labels then markers are given :param int num_samples: the number of samples to plot maximally. We do a stratified subsample from the labels, if the number of samples (in X) is higher then num_samples. :param imshow_kwargs: the kwargs for the imshow (magnification factor) - :param kwargs: the kwargs for the scatter plots + :param scatter_kwargs: the kwargs for the scatter plots """ input_1, input_2 = self.get_most_significant_input_dimensions(which_indices) - - from .. import Tango - Tango.reset() - - if labels is None: - labels = np.ones(self.num_data) - legend = False # No legend if there is no labels given - - canvas, kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **kwargs) - - X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) - X, labels = subsample_X(X, labels) - - def plot_function(x): - Xtest_full = np.zeros((x.shape[0], X.shape[1])) - Xtest_full[:, [input_1, input_2]] = x - mf = np.log(self.predict(Xtest_full, kern=kern)[1]) - return mf - - imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.latent) - Y = plot_function(Xgrid[:, [input_1, input_2]]).reshape(resolution, resolution).T[::-1, :] - view = pl.imshow(canvas, Y, - (xmin[0], xmin[1], xmax[1], xmax[1]), - None, plot_function, resolution, - vmin=Y.min(), vmax=Y.max(), - **imshow_kwargs) - - scatters = [] - for x, y, this_label, _, m in scatter_label_generator(labels, X, input_1, input_2, marker): - update_not_existing_kwargs(kwargs, pl.defaults.latent_scatter) - scatters.append(pl.scatter(canvas, x, y, marker=m, color=Tango.nextMedium(), label=this_label, **kwargs)) - - plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) + canvas, scatter_kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **scatter_kwargs) + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) + scatters = _plot_latent_scatter(self, canvas, X, input_1, input_2, labels, marker, num_samples, **scatter_kwargs) + if imshow_kwargs is None: imshow_kwargs = {} + view = _plot_latent(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, kern, **imshow_kwargs) + plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend and (labels is not None), xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) _wait_for_updates(view, updates) return plots +def _plot_steepest_gradient_map(self, canvas, input_1, input_2, Xgrid, + xmin, xmax, resolution, output_labels, + kern=None, annotation_kwargs=None, + **imshow_kwargs): + if output_labels is None: + output_labels = range(self.output_dim) + def plot_function(x): + Xgrid[:, [input_1, input_2]] = x + dmu_dX = self.predictive_gradients(Xgrid, kern=kern)[0].sum(1) + argmax = np.argmax(dmu_dX, 1).astype(int) + return dmu_dX.max(1).reshape(resolution, resolution).T[::-1, :], np.array(output_labels)[argmax].reshape(resolution, resolution) + Y, annotation = plot_function(Xgrid[:, [input_1, input_2]]) + annotation_kwargs = update_not_existing_kwargs(annotation_kwargs or {}, pl.defaults.annotation) + imshow_kwargs = update_not_existing_kwargs(imshow_kwargs or {}, pl.defaults.gradient) + annotation = pl.annotation_heatmap(canvas, Y, annotation, (xmin[0], xmin[1], xmax[1], xmax[1]), + None, plot_function, resolution, imshow_kwargs=imshow_kwargs, **annotation_kwargs) + imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.gradient) + return dict(annotation=annotation) -def plot_steepest_gradient_map(self, labels=None, which_indices=None, - resolution=60, legend=True, +def plot_steepest_gradient_map(self, output_labels=None, data_labels=None, which_indices=None, + resolution=15, legend=True, plot_limits=None, updates=False, kern=None, marker='<>^vsd', num_samples=1000, - imshow_kwargs=None, **kwargs): + annotation_kwargs=None, scatter_kwargs=None, **imshow_kwargs): """ Plot the latent space of the GP on the inputs. This is the @@ -264,41 +308,19 @@ def plot_steepest_gradient_map(self, labels=None, which_indices=None, :param str marker: markers to use - cycle if more labels then markers are given :param int num_samples: the number of samples to plot maximally. We do a stratified subsample from the labels, if the number of samples (in X) is higher then num_samples. :param imshow_kwargs: the kwargs for the imshow (magnification factor) - :param kwargs: the kwargs for the scatter plots + :param annotation_kwargs: the kwargs for the annotation plot + :param scatter_kwargs: the kwargs for the scatter plots """ input_1, input_2 = self.get_most_significant_input_dimensions(which_indices) + canvas, imshow_kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **imshow_kwargs) + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) + scatters = _plot_latent_scatter(self, canvas, X, input_1, input_2, data_labels, marker, num_samples, **scatter_kwargs or {}) + view = _plot_steepest_gradient_map(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, output_labels, kern, annotation_kwargs=annotation_kwargs, **imshow_kwargs) + plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend and (data_labels is not None), xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) + _wait_for_updates(view['annotation'], updates) + return plots + - from .. import Tango - Tango.reset() - - if labels is None: - labels = np.ones(self.num_data) - legend = False # No legend if there is no labels given - - canvas, kwargs = pl.get_new_canvas(xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, **kwargs) - X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) - X, labels = subsample_X(X, labels) - - def plot_function(x): - X[:, [input_1, input_2]] = x - dmu_dX = self.predictive_gradients(X)[0] - argmax = np.argmax(dmu_dX, 1) - return dmu_dX[:, argmax], np.array(labels)[argmax] - imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.latent) - Y = plot_function(Xgrid[:, [input_1, input_2]]).reshape(resolution, resolution).T[::-1, :] - view = pl.imshow(canvas, Y, - (xmin[0], xmin[1], xmax[1], xmax[1]), - None, plot_function, resolution, - vmin=Y.min(), vmax=Y.max(), - **imshow_kwargs) - scatters = [] - for x, y, this_label, _, m in scatter_label_generator(labels, X, input_1, input_2, marker): - update_not_existing_kwargs(kwargs, pl.defaults.latent_scatter) - scatters.append(pl.scatter(canvas, x, y, marker=m, color=Tango.nextMedium(), label=this_label, **kwargs)) - - plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1])) - _wait_for_updates(view, updates) - return plots \ No newline at end of file diff --git a/GPy/plotting/matplot_dep/controllers/axis_event_controller.py b/GPy/plotting/matplot_dep/controllers/axis_event_controller.py index 15fcd098..042afb59 100644 --- a/GPy/plotting/matplot_dep/controllers/axis_event_controller.py +++ b/GPy/plotting/matplot_dep/controllers/axis_event_controller.py @@ -129,13 +129,7 @@ class BufferedAxisChangedController(AxisChangedController): return numpy.hstack((x.flatten()[:, None], y.flatten()[:, None])) def recompute_X(self, buffered=True): - X = self.plot_function(self.get_grid(buffered)) - if isinstance(X, (tuple, list)): - for x in X: - x.shape = [self.resolution, self.resolution] - x[:, :] = x.T[::-1, :] - return X - return X.reshape(self.resolution, self.resolution).T[::-1, :] + return self.plot_function(self.get_grid(buffered)) def _compute_buffered(self, mi, ma): buffersize = self._buffersize() diff --git a/GPy/plotting/matplot_dep/controllers/imshow_controller.py b/GPy/plotting/matplot_dep/controllers/imshow_controller.py index 9d941073..093d7859 100644 --- a/GPy/plotting/matplot_dep/controllers/imshow_controller.py +++ b/GPy/plotting/matplot_dep/controllers/imshow_controller.py @@ -33,7 +33,7 @@ class ImshowController(BufferedAxisChangedController): view.set_extent((xmin, xmax, ymin, ymax)) class ImAnnotateController(ImshowController): - def __init__(self, ax, plot_function, plot_limits, resolution=20, update_lim=.99, **kwargs): + def __init__(self, ax, plot_function, plot_limits, resolution=20, update_lim=.99, imshow_kwargs=None, **kwargs): """ :param plot_function: function to use for creating image for plotting (return ndarray-like) @@ -44,15 +44,16 @@ class ImAnnotateController(ImshowController): :param text_props: kwargs for pyplot.text(**text_props) :param kwargs: additional kwargs are for pyplot.imshow(**kwargs) """ + self.imshow_kwargs = imshow_kwargs or {} super(ImAnnotateController, self).__init__(ax, plot_function, plot_limits, resolution, update_lim, **kwargs) - def _init_view(self, ax, X, xmin, xmax, ymin, ymax, text_props={}, **kwargs): - view = [super(ImAnnotateController, self)._init_view(ax, X[0], xmin, xmax, ymin, ymax, **kwargs)] + def _init_view(self, ax, X, xmin, xmax, ymin, ymax, **kwargs): + view = [super(ImAnnotateController, self)._init_view(ax, X[0], xmin, xmax, ymin, ymax, **self.imshow_kwargs)] xoffset, yoffset = self._offsets(xmin, xmax, ymin, ymax) xlin = numpy.linspace(xmin, xmax, self.resolution, endpoint=False) ylin = numpy.linspace(ymin, ymax, self.resolution, endpoint=False) for [i, x], [j, y] in itertools.product(enumerate(xlin), enumerate(ylin[::-1])): - view.append(ax.text(x + xoffset, y + yoffset, "{}".format(X[1][j, i]), ha='center', va='center', **text_props)) + view.append(ax.text(x + xoffset, y + yoffset, "{}".format(X[1][j, i]), ha='center', va='center', **kwargs)) return view def update_view(self, view, X, xmin, xmax, ymin, ymax): diff --git a/GPy/plotting/matplot_dep/defaults.py b/GPy/plotting/matplot_dep/defaults.py index 5e8d84e9..7333e450 100644 --- a/GPy/plotting/matplot_dep/defaults.py +++ b/GPy/plotting/matplot_dep/defaults.py @@ -68,6 +68,8 @@ data_y_1d_plot = dict(color='k', linewidth=1.5) ard = dict(edgecolor='k', linewidth=1.2) # Input plots: -latent = dict(aspect='auto', cmap='Greys', interpolation='bilinear') -magnification = dict(aspect='auto', cmap='Greys', interpolation='bilinear') -latent_scatter = dict(s=40, linewidth=.2, edgecolor='k', alpha=.9) \ No newline at end of file +latent = dict(aspect='auto', cmap='Greys', interpolation='bicubic') +gradient = dict(aspect='auto', cmap='RdBu', interpolation='nearest') +magnification = dict(aspect='auto', cmap='Greys', interpolation='bicubic') +latent_scatter = dict(s=40, linewidth=.2, edgecolor='k', alpha=.9) +annotation = dict(fontdict=dict(family='sans-serif', weight='light', fontsize=9), zorder=.3) \ No newline at end of file diff --git a/GPy/plotting/matplot_dep/plot_definitions.py b/GPy/plotting/matplot_dep/plot_definitions.py index 46b67283..76e557a4 100644 --- a/GPy/plotting/matplot_dep/plot_definitions.py +++ b/GPy/plotting/matplot_dep/plot_definitions.py @@ -33,7 +33,8 @@ from ..abstract_plotting_library import AbstractPlottingLibrary from .. import Tango from . import defaults from matplotlib.colors import LinearSegmentedColormap -from .controllers import ImshowController +from .controllers import ImshowController, ImAnnotateController +import itertools class MatplotlibPlots(AbstractPlottingLibrary): def __init__(self): @@ -120,10 +121,26 @@ class MatplotlibPlots(AbstractPlottingLibrary): def imshow(self, ax, X, extent=None, label=None, plot_function=None, resolution=None, vmin=None, vmax=None, **kwargs): if plot_function is not None: - self.controller = ImshowController(ax, plot_function, extent, resolution=resolution, vmin=vmin, vmax=vmax, **kwargs) - return self.controller + return ImshowController(ax, plot_function, extent, resolution=resolution, vmin=vmin, vmax=vmax, **kwargs) return ax.imshow(X, label=label, extent=extent, vmin=vmin, vmax=vmax, **kwargs) + def annotation_heatmap(self, ax, X, annotation, extent, label=None, plot_function=None, resolution=None, imshow_kwargs=None, **annotation_kwargs): + if plot_function is not None: + return ImAnnotateController(ax, plot_function, extent, resolution=resolution, imshow_kwargs=imshow_kwargs or {}, **annotation_kwargs) + if ('ha' not in annotation_kwargs) and ('horizontalalignment' not in annotation_kwargs): + annotation_kwargs['ha'] = 'center' + if ('va' not in annotation_kwargs) and ('verticalalignment' not in annotation_kwargs): + annotation_kwargs['va'] = 'center' + xmin, xmax, ymin, ymax = extent + self.imshow(X, extent, label, None, resolution, **imshow_kwargs or {}) + xoffset, yoffset = (xmax - xmin) / (2 * self.resolution), (ymax - ymin) / (2 * self.resolution) + xlin = np.linspace(xmin, xmax, self.resolution, endpoint=False) + ylin = np.linspace(ymin, ymax, self.resolution, endpoint=False) + annotations = [] + for [i, x], [j, y] in itertools.product(enumerate(xlin), enumerate(ylin[::-1])): + annotations.append(ax.text(x + xoffset, y + yoffset, "{}".format(annotation[j, i]), **annotation_kwargs)) + return annotations + def contour(self, ax, X, Y, C, levels=20, label=None, **kwargs): return ax.contour(X, Y, C, levels=np.linspace(C.min(), C.max(), levels), label=label, **kwargs) diff --git a/GPy/testing/plotting_tests.py b/GPy/testing/plotting_tests.py index 24e64ccd..9618697b 100644 --- a/GPy/testing/plotting_tests.py +++ b/GPy/testing/plotting_tests.py @@ -167,7 +167,8 @@ def test_gplvm_plot(self=None): plt.close('all') m.plot_latent() m.plot_magnification(labels=labels) - for do_test in _image_comparison(baseline_images=['gplvm_{}'.format(sub) for sub in ["latent", "magnification"]], extensions=extensions): + m.plot_steepest_gradient_map(resolution=5) + for do_test in _image_comparison(baseline_images=['gplvm_{}'.format(sub) for sub in ["latent", "magnification", 'gradient']], extensions=extensions): yield (do_test, ) if __name__ == '__main__': diff --git a/GPy/testing/plotting_tests/baseline/gplvm_gradient.png b/GPy/testing/plotting_tests/baseline/gplvm_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..3625b67318eaa9f4819bda596d7a3e3ccb3735fb GIT binary patch literal 14441 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 Cry}+M literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/gplvm_latent.png b/GPy/testing/plotting_tests/baseline/gplvm_latent.png index f8167b133fe2653ae763d66139c838ef1e9d101c..acb56fe44f725187785daba8d89f9ea256666756 100644 GIT binary patch literal 29924 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

t{C_y=*PYy&hL~WBz zI8)BNtVYT-x}NVd4}PrRtjD2P*-xu2rnp${SNe#iyDqY2C%26^uf;x~@o8R!M0zW_>L}oguq}Mz_CUfGqpZ z6=$g*XTQC=_3l>0)^d5XaRP>tTqAZ$CZu{HOhL!OwUbN@*4 zq@0j>{EFqY);Bzo9l6u%YM?ls+X7;`Emc5i7D$3e(TF^nUE@Hh8k?d-mJd$FeEc6G2*RzgR9Mv!1+LWMC$41A zYvgmw6z~aI*u?vb+?Gza+yo?W{?>)7As^TJ4USbd^GA__{EwgPtY%>bT%3tDZhygF zW0}8fE1l(7*!1pY&CHZj8)852_yVg%;~1uS+BXIHMEmsTgNszw6nm#g8&;mR>f=Ys z6AW&INTX)_Br(?#`Bray&h#Fha1N9TM9o|0O0CFjh-*H~7ObR%k4tHl>x^KMT%)#O zH|S>hO34(6J3Ng-LD4&-$J(>~y$y<$v0YqTQbhR;yxqLih>?QDuioqu(+W_o7OMT! zk=DGo_i&q?Gj0z-bq|5axjmeFS#2vx13$}>D88` zj!mgN+ac5r;*_MeOT0j~@?Ep+XDvrx%^NWhX2O0Uq7G@ZVqVpNPPO$TjGTNh;F5-4 zoxIG-qc7rKajc!F?ZGB>XdLjQWd_Xfoz?qEK){{?_D*`%aHr(vCoqGglTuqS21Ik= zT}#{Y85L;uKQVE+OhEe!8xi|_mKZiU5tGfOy788Cd+?E}2yY$KjVHvDY1ABc`lsgY zF6JN*betsVNGF>`$MipzpOPqg2s^m*=BdekGWv-_L5qX$z~4=Dv*|h4Bp*T$h{(mT z`R)$T7uU$b@uh})hLB}i^$OR}Skx*sh4 zJBtl;`}frzUd_fMEX^&z%HI47ctuwJsq;Rh(FRE46H<$_nl40E5a98`0F&&hDMzwC zaCr9C%^k7LG?7%P@T;Taw@QGVFkb`H_Y~Vzztv&eI33<2{)+Bs~OKb##&u zG^Zj{%MXIhgEQuFkL201am3YGgLzXV$Deq^ljBu(%9W>1Tgz zx=%=baE9y={Q@=ypY4`NR*Z9yjzMzi92=r!awDrL?Fu%*TUX0fiFgVBhOJOLoDEp%l&q=TZW(&J#_ z<_9qO5fJJ3N9!GFjKb0@n3zlJcHN6OWOz{6ZW%35osJL&Pzjk+8|NkSml+zE3=W5- zJ(=fft|5M@fk+ggvZo870z69n<#d}i>NJXIwUi%%!|^^TqclN@AO7+l!hUHJ?!1SM ztWsj~r*L4VNWHQ6mZ|Bu_2^lxnzLkK0hl~7D$)WCx^2$<_YIu)K(G5FEw=2G-|A#G zec6BNRF>m9D*6*4yT#L~Q)!e&%vf4p!0KE;ffET4UGJ9iq;+t#=;NHQ(*nno?dNOT zOuoNJmYYc^p(m!l2c+unEibl%c_t(%bMkgPOtigfjm_`ni?Mj6jJi=ASKHff|2M|Q z4wTLG2$X%}%g|xK=t7bmO%K9V(&t}h4E)?z?sC98#vG9JZ^`|g0y=XnD?H^8$T02> zx6R*ZD%0?2UJS;J0F!9VT-Br=TZlLyA6L^M?M#^hq@ZYvpJ)dtot8SiOKQ(Gf$R4b zsOl7N$#ct!gETE~E_YE3z?!IwKUT#cz~jsvt6L7o3?|8k18%j>YFai(vif(%c;(fI z=_bbc7$TXkA7Yj+Ci^$yE4(kz;L>EZodH=@@D(O z(WVUNralTIOVi)M9Kd{QW}kp>dlT@t2_p#U5|4Sg1z2$fFlm%9(@uh?{;h;-YwN6J3@KC|x(B z{1!QJshup~Ur)I?zxD@u{B11i7a?L8Z<=+~G<_b}<&2?#tM0>K^19akTWamY3a|LR zX{?Ad#87N{iqYA&v&!&k$TIj55qZns@s{Q7 z0oq{TxnV+uu>$^G62EUCe_k4D|I~d9653R_Fp-YpG38KT>U|&YDm7!wWDxg;T$~w5 z*jr^Fm7CapjsiWGjfXGL0`82$-m*bhb=40Um&@OL z3JoQsDfRjp7)1WX!p|Y|t@(E#My>!yrHi9Jz+~ekquEzsYC-emflq+Rf~Og*WYkK| zT;u7Iss6X7g1{!@NHQ05dm{$_If*?!rMJn|$NWl@55Y3Is81mPRMF!bSD16eW z1}x1v%b|>Wehv zA9<#-5N05$*hljtJHJ?RBcQ9la4sXQDl7YcX%%_f)}vfZu$g!~i#T3$cSbZci6efA zzj-`+k~P}JGWD$1^0(akJQmzI6=X6?>_2L~8B0b@Ch_#Yy@_+j%zO<6z(qt^q5_ko zdUJeIYjWGiD4fi4Ukc(5F%sEcTG5MXZsCr83V2SmD^e_^$4B{&0eVQSo57potoL2; z$75V^gc)73g83JLZucq1#C{k2olAw9xuPS^pJFY_I**r1#lv!3l)sT;6}xmlwZyJ; zaPq87VT!9F>7g+#TjX^5b%jKb{0ds8ytDee=R#tiQ3&zW|MWY{`vu=*8D7Zd;i>1& z8OA5MjW?Vnu-K}jWzPi!^vXc-r2q9Rqe8xsgTeIrbraOLtS8v(qFpOomiBAKT`TK| z%gLrmG2~zfWq8xCBFg5e@I`(KHj38_eC1>lx!GKn*l*NWoi7Ux+8mn;cigP?`m_!k zD$N=Xt#{UOcS}F=NS)4C4pNCG2lr3;4Oj#%X*s!~DpZ}!g6_#pplgaWvp?+SP|hpZ z9V?Wc)h0Q$4S$;Wo|p%Du4mV1mzMB9`&`^s>DGlD$&KF~9o;tY2EX1wd`Mc8K9Obc z;^v!tq{K`L%B=D8)C!Geu3Y`4Xa+o2L~7dt;f;$@E;|t$F|HXpl(L>eluHS3jB%Mj$^C z;PrTQcrqc~ut%hK=hwGqq_}@*+Jb|$le6cN1iMoq85EI1t?7pP7wihOQis*@ubH*3MUVB zZ|}p|IWhO%DZ;|%O7Sr7m@>C-WFmb{^lpZg{xY?;{Ew?VjWd0dgJh9vol4HGt_MTW z#C9VwL63jx`%PsXx-SA^fsQs_s!q_vU&`=>)qLe=Z^OPQ4hBPo^I^}OsVC!tU#Jmpsd?;= z2`em--Yy>j$pe@B5tl#AtB;MNznMgeh>M!_{V);V`GxzUYJn9plr%-5@ZFFjXv1_T zO^=lN1qoZU@{*vD!pAAD?%GZ4_?H{)^Ix7vw$hJat>BpxCFmZ7)8)TMObY!F=Q*%( zlY!=Kn`c$eOin(QSdhwUZX`B}SQ}j@^B1Wm^~YkFV#&MY8H^O)An75u)(W*+&~tJ% z{pjCTie&4t$5qea{j`5-S$OzvAN%>^WTA|=G%m`f)%pdF zTH3i96f-c4g79zb8~<8#{-6hPKH(;^o$UZSOgd}QIU90W>9tFe4Vxbfp4{8Y{0?WH zb=L|@ZG2>3&vr~QvDBMr-CS^8wkwbE_oky1XD1r^XBZ*pLA&~^H=8Ne?f0{){aMi} z0ikycG~96`#O7{Lr~6$U+z@I=e0}T zNI(DUDOb2B)Z2r8_}gaLK2)TeHvBQo1&^v44TXsomgXaQH{CE1PDZoQSywr+x49ZK z_o%*Lt4{2WuJ*i5tGaDrCgA?dEyt)*`w^5(`;tGT_tZ`siTAm<%jOF`>eUwKtYJ)v z3+eV(osLr9Z-Xs=c{N?vt&TuvBuyv0sTP()pC7yo>j zC(yLc?xrvC*w!eSJ0a#VF7V;1Yn5DYrDUyVs9w@2vbe8NG&NMQ&(TnMB3?Oz_R_m#JqsG*Ob}c#jnS!DqibwWb*e!IFKRto6P0{fFjD3g2gmZ)^h%Unw=) z$5g=L=3{FNz`L(v7}4005_nh`k3IEE%b56g_WEo(!%IrIyxd(?G8gLA;xaQI_ZYKm z4}qQ2(fTkmScug)^_)ECDlzsO)*oT-GWRLPj%~X8=bBBfoL}8yWUQ+otxMg88xi0 zxu1y|o-OOW$~mjAyxp!|QuA~9BW zS79?Y^3v07p6hty6>(1awAj!q;x@$kXk1y#{or0$tGD;{W^2RACtE3IrmIaIBcH3A zzSf(=H~Z9RdJH7M_ddCXL$J}%vaqo*{y+cSb&nn-8&)+VH1GttZ8Rl0RcNVQkjRW3BA};gpj8ekjofvlFmZ96|ab)r9W;!ER{>x%hMS=)uKM zWZZ7{Di77>b--uXQWacyyKJUjZd%Q1SY=SDS4Lnsr&cTbzh6!B)i6@I{(GC16I%^;BPj}Vn9Mz> zsnFEEY~(GzPu(IVBC&AEB}b>Ag)E z7jr@!fyw}H$ZYU9u=dOfo(Pvh@d;?5vc)uoCm9OPpXqGJ+K~*{%<%J~8xgF+H{L z$f2JY&!52vJcOSL)<)5n6ATRp!W!p_N`AhW#-a=5H_8qcsX)+V2aqgBxX2ne8`??+_M#Yrk>TU_|sQwo(_~ zhCGR93#y10vQD}>(U{~3^-kCtFg^}mJNXR-*QKaKczVhc;SEng z`;adT zFZn`4Ub+^no;@gsDjEcVI+c zf)KJj8ACLMu&%n!c-Y!8adP{%<62QfbglD}{kOHE?8s?kSOQ(*^P#)CUegdeKndp@ zBEqf%X#f3rn*F)fp|HU{1WWb2Eh#S=5w?k(X8IAl6j+gp6D^uRM@7Y)j{8ob zC*0Z2ZSA-lv}I(re`z|p=D3jZDf&s$%zh96fiDY7Tf!x-%HtqSA##G4Tn}$D7oW&h zaN^Pg+qe79G%CpSSND;ui8{qtq9l!@zXN%^|^+gGYE<5gS(| z;RheBm0f}_{W#1IoP0fbJDVo{LB1bD5$hQ~fu6XSCO4qRkJ-TZ8TM0rdO*;{Q5azS z5ZldM9TKFZCnYMmv}r5i$HG8Nx)(nCDO63HhQ6JIlaC7o0fH!`Qzw$JQYx0AE{iJ2 z9aOK8R%M;Hd08C=BJCOT^behR^zBbDCc|Z9)9_=?ao(zV;7kHNVZFSy8<2&aA{#|j zCIyp4Q=i}@Kt0afY;@O?+vLBHiI^L7>2#?r5KeSGCs1s(ap?MDZpq2he^V;>F!_>6 zQFtYGmT=-BzFwFy66ri2xo{~9nC>OhfjR%^UFdcRFpuY8p7&}eEwZv1rK@_F*$4tK z5RsbcYMD~e)4vZK;GNDI43($1(>YkD!%`h4oS=5C2~wE4-Y1B0#0`O+!QJfg1{Ujj z={1&IIO(2I$Umhv^nh}3)8cbQ-EdWo(6Ljb8mjfYw5O6FM zxHlS0Ku@d)@df=&u+d^K25V1tOL&D%JJj%{$3WacvUGXo1dyWjj({Rn@R+6(B>RJ2 zhJ@CjZ5+kpoUfPr*Ll?;`g)ki+;TswBvGz9^tih>UmKJ8gT+BYxaZrybzef>hOB96 z=0cChUA}DvWo_rw@VIEa=E}v4%KqF@@8&TUEv=dwn`K*@n6G zo-p-q*iqBG+n;)?=Sc3*690nll~Jo8j~>xeRhl(m&$uNQI`( zcBWRab3w9ypw47Sc+OQn-A!AausOsVf)@fim#*zYoz_bwla481;x{dE;Ag=O4zw^B zS$AMx7tFAprmg;NX%~OSoX)aFl$EP(?Uafc|0Jox?^TxF2zmf^D`Js36gbdTIU|E; z`a{%7@p%>W%iEVU5pii0gV*fYmZ$Q71+1cwbuA>f@0GG2dvk@2?%NGIu@vTaK7P99 zx^O>o+pyC7nR)=mIeW#JojtSs%x4Nf>h0?j6=B&4dBs~@B)4XoTG|tp(%UlY=LXVa z3Ur0xRPUn9fqk-}n0P*hu3_PKtt)siUe_7w zSi-0FMBzd;c~>mmJu0SJ{ZJjZ&ZqdSsH~VVtfGNePFC{=O8qS*;^`dV!38j)Ac{M6qh~lRxIs_J;2`lG z%gz~MC$|w6#Z64qcvE3h9gaJGjRZPaEfedL3Zg6G1y|A&5-QfqW?ge5Y3)82a+IWo zRI*LF=Z_q}A>Y=$rI*43?9)0e&*@9gbHG$=lb3DIgH8N%J2~ep+b{5wLF?;P8Ovty zm&M+1TaUlsj3Na{y;GF(N1BDZPC|Q^z4weP=>Q)(h0VR_>lO?dut?2Pp&OGPO7UDt z-%6I(yZapn!HxFdXchJ#4r(KE*$S|Ol=*8K(A74f`3{}R=e6}w{o~{TIVb);j`P6G zkoBF3l`@+s5mKlWnehjWU+G`}4tVP-WAEEL$h&PNh~cw z-~dlp#%Z^Je0pAGA)@KiB%=-sE-w|;+%-D}P_reyJT5jaiQuV&M60*R$z?jB^3d}# zXG+=9I$pjN(f2O2)*-L@X`H@ph^$06(~U&N2o}H>Jf~Zan0!N#DpUnziW_s2S_my&9 z4H|mr`_+?5Qbp>PRmbqTvHOZ3fCVUBKm2f8Os=5Pc9q zO|7%ZDDCUE$SfCO`T?;yJSVwp>&kr<@+CklLn>qPt|Qf3e-IF!st6^((d}`OLSCjx z0tr~9P3$CrB+P@_9pNAS4`0Q@+eplFmByPY?Q5B_6mjrcAZc0)bCbft#4RqVV7Ks0 z@?wrnRyZFIu_AzxvAH5>OW!U)RVn`rd>AN7&%q!5Ddx`6$BRgoBMim&)jM94hlUnk zCr{8-glD5ifsia98^~;KP6Kc;dv%9z&W%Ir@aRwufhS)~aJh&XrQZgQlrH+WO4Nga zXbR!^J9isiIVP=AjLMsoG<4|=HDw}U{5C|mM;+pJO5^LCWv29JFf^)`XK!DIL{dKF zKLF?q-`ZffPGVXK9YP;rQj%2EM5V=hQHx2KWt%6X$}e}HpX%EnY~X4e^xy?2fu!&< zWTCALjPAl%_=r&0!H2YzNwDsJgOb_uwg!%Zg2YLo^vmdzm=fRPE}`qc+>XhAClzQnjiO5A z!^A%X-Z;G$Jk}kM4U81iT84+7lZNPw*Uim{)vc(h0x^uf&9K?clj21Tx;yJb(8m=R z>-fHLO@)@xB}ng{*7us|XSxL~;rg25JsVrn`fiM|+u!z862LDKWZzdA@#xb&U3#ep zJ*nDu{-w0o+$2mAER6FR?>TuR&}{Kf^~>&$QCn6W?v@#=$l^kDSy7BbuNKlF&648tDWM zYot1NS)5r5-RB|U-~$L2X%*c_^_*yVk(Fmgy4b*wn1y_I7^X(*nqvlfxTe4Tx}(r7 z*Z*SO28673J3fvG>PqgCcP7M6iW#!Lo-L8-A>^->n=9vO6UE5>9jCc?gc_N=1~K|x zlLiMC6Uz8>^N>6ofPw=h!z_nu`|tQ2CFMkLB=En4YoU?*=TcK$IK~r7TmBN+cRy!) zf9DDqCI!6UGjGzr2|7vbjOJPu*ZcBibkEyZ84JV*23dtue;l1xld%tyUoU!tI+Lz& zzVx!zT?33d=b9IE0@XLuV2|qx*C!`L&+fdf$^#gaWPGR>S3POa@tJ2EcSJ4}XcKTi z*X91`LnGed_n&NDcipWnrZ?xmpIyAbg8=(T7VF#)%iKN$jMeivOlxV$NB72;Z6J)g zZM{K2U#2TA)SkooS$}j3YmnWm96=IZN#PNsds3k>_m0x zYFzH$wJ**LoFNNU(A#q^nY^boXL?tuaI3}ZAWb4ru?<~YkK?9LhaGee9-m)h)&x$m zK^g+QsGnlt`K%=Rbdr!T>K-Mh&T5*Lhbl)4iY;p9C#AypYP^jH0g4MZWQt4w7QTgX z*auoaLES1w#JH-3_TmDE$e{(n)m?%df8D>+szO&ibnNFpfQ)oX_l7@K;w$DU zeT9=Tj)LSkOo*#4KOz+*v4DQTe7Jc$z^q@j4-6opF=ne#{S6Vz~3u4FamzCx-f&l1i21!$eVhqeCNUn0#a~GfNXMCt1 zq+?;j)}Moh`X!D7m|CA~qSJT{-g~__;^;8uH@!$FFc$d!C2^@PcOve_;v;<9G~{}R zFd`K@kwJY;0N)R5(&g9v6!-9p=y5W^@U4u339kr~B5S z9p-20&zG#bw34Ux_ z@L;@>3B;4}tEV&1bzt86F)JnEi|=wRBNL7;DAdg*@c3U0(X%2KtJX9_J$vq$O_fMYvXg9v0^rC>Bye=F1||Kt8wE)eAtsl%f^E$iM9JA4}_AS990 zdNYN%#K;NNLMn?{s8Qj9;NnA@?8VM4BaCTyi=sY`bN%^5$}w@h z)moNqN}2Yl!=vtC7)4_HQi~QKd5mPEd@PuvB!UbDdz3}0b-D&vTl~UNJc#K#k#EHL zZc@;N47hs5n1OPzJP3si%p0ZGlyMv{?+5QavjTM&{|O8)s*vrg~w;8cT?dUv^5hn-3^5kYwhV7T~F$Y0%9 z^B|w2W*7b2L`+s^EEaZ=Qz=+Ct(;SO;cC+Kr0ulyhcoH?8N6=RsIdXvQByIZtvSHS zihI(h4Aeye6Iu%E-Q8*nq6xU~T-))fMmD|N&{H}7w-O**pBU#IxUk<%nh@{{@q>C4 zF@0AUr%ubJdw>~|68KCk=+ZiYx%&g`$JvV$3h@?c+P{Eb#K^wSHIH~ogfEu-9x)`P z>UGW(A<^LDFZ*7dz_c;sWNJuHb?wf-hB5{UF@0XJFlo{3R|a(D7WH+@60}1hw;bcq zw`nz(O^hlWlES2^A>B=K_JL$+gIZRIekzeLYt^q>`8_4tk`c?Ff0_x;(r#8KOaWeF zWrGje9Klh!t}qhxA*yXEzYg0G;xh$;hG$wA8O!6*0b8~`lsr)ZkTT-2*Km(SsHBd? zhXdxcYzN#Az1(~06*Xu{7^~0oQuPKgL0hqtBvG>L_Q}`7iI~9AYvoX7ym=0{rMrBl zjkPh0{)K-1-37_%Cy5bi*g`^Q;Nu=pGm%rbq4Bt}b>2w~76q5|6IRt}SK-vLckhQb zH%?z{hlbN?t+ru3QyGZ;FZ&&syLWJWuK~6jC0!uJ%U0WwkkB+jQu6XO7C(A26=CPj z$$jdOaC!Ncc`mu>9*+8rII;& zimpeFM5c>b``&m5YbFh+uq6WMxSK0Fl%h~of@D!Ln?qzJ-Ph1?SGYNge7Afzu(h0u?a&gYH!?ZW-m-3=rqh`%BN~O z!?F6AHVa8mvOC2ib#MZW$3xxU8k$ziU0Q&yrN47JJQPDgrOQ7dZ6Fr1781^ab|Eg1 zw3fIFL$O)|3SvgB0z0Eul%JF8Goe$l>v&2+%ff8`Km6P(A)n(e@MXAoQsqoH7&`og z2tIJWsJd2F-QLOMu$Cn*nE1PmcOHh6GKnMFp$gS7rV=%;W5~S|+w7Ys&#E=3 zhd;7*oZr6r_I=m*1RC%6t*hvb&uBD1m13sZw7)8{_C!(GLWOPfBVNi~>j*J*sT+qP z8tY<_4$teKElm^O4Nr#j<^v;SRm7`5ug4+wKeu%qu8xn!owPn)A8;gSuc2HY0k|K% z3G{0VUw>GB_I(w~3HZXT-yaG0sxaWnD#-5Ln@hBIc#F}A6*j;0QBbEElTgM8nLBRX zOLc_xI+b}M8dH@6Qp}X$%VuNHanGA&&*PG znlG{sEb8><9THn1s}}H!r*q|f(S#jE?2B|ZE#aW&&$mEvj)x_HKP|ya?!@$sP?n9; z=3))AOaCYf>UndBUQ1@K@mZVa5Y~FIC`X{q`k@{{vduFecgGO9?S`rT8{LCFtjzaW zuN3(GnCVqul6pbX^RS;It5+@%zng%Q`KyBOp{4#$tAcW&4yV*F4{qy&2hHl6+hY@g z4(jT3y3Y?G#2|HNas(ZXDrQ)mHUY@s7EFrKlK`Lfh}JJ}d_ei%E&Rq-Zd&*!%{zKF z(IKJ!sq)CSkSQH^<4oEp4&7{PIG#KAc+>JZb6aiP*$>i#qE#59)7eTHiNQ;r?X?|5 z#+{Gul9!$ACo&Hx2@W0}z^<#^WSZQDtbILwu_T7 zFRAij^pbc;=n-O8)l_V^MXuWJaxz0@NH~ftB5`DQTJDBN>d==CPr@eukuPBNlztA7U*_8o0|@&^euG&;3l;Hx2dq7+xZZ|m!s>xsCEBID9YT~thE ziODaK&YR84nZyJViTjh2-=j`Q4*fKZDRHqK08)J}=xA`5O|jN6BNpH4##`@FMl_SS zbSR+lA4f%-e9Kfza5-`0*_%LQTp@Z84y0*Ih4sqtZbbFJdM^r`9gv%K!Cc~}Ap^v? z^Vm%~yd}pZLHZ{oQtEPOZ!CP{bN!V&4QNf7Jy2<*<2LYa*9}9;3aP;OcUO}X#V_XBz z7$r~s0Yei$%brnZT|Oa{dfKEDO|ES3`8|5^3f0@a!BgXZ@C*`=!DR+&l8_`4Kvs%B zv+eqSy8uefS8vA_H(8dv^^OJJ-r4ehW+p$SF>Cm9=_yiSjUjLTLQkKGr{bkNvCVGx zW>|D>06N*)Azb|LJ3s`IhxTZY_;9#0X7$}<;A8uRw4{EP{mRz@*Y~hHDFc=P8CA3= z0v1~l(ibc6e#3(EX3@N#*Q`>I^f?Ku^q1?7rvb}{P<)Be$S7jGb`m;f3LcI+#T!xo z{|VFtKnL5`BDcE44)l1s1z{AKT_qU$lgD*mpWpC2{2LKT)?qSJJ1vdHEYbNg-Byyg z5oT<;(wK*%{Bp8~wNfy-bl^R>l@#45V(w#ospzN0TbB*lMzNy_2}vlHOwfaaGSl;i zhd$RK3XD%}0HFXV-l$?Nn?}3Ip2*2>(x@WWn(s{Nk1=z{T4NwF}FrEr6reeOw-VTduY$(kiD%%X{F55o6ozx3kk=72QTeO=2 z<9fZ*Uwmc6vsr`7*uQ@As^bxHM^|tnVDC+gaGRPmzN>J3-h`8$F6SX&p7!8? z%1)y8O+o+@Qlt_*7|Pbi3RCvMdRJ*5bRe6ZFdNki`?v2GtiJ06fRB%_A;>U=pb)=- zFrn%8NRN4uJoSw_s{?%1gMox+vGWZ+G7}8jrF7gI%>h?M#|t=+`_Y753lFlW*ai`8 z5KHv@#@f>v$CH@}uI$Tl*$r|;sLHC@SDYba2feJ5@BFsofb4H?UGFOMnH0c;up~A~ z>;pWXyT6H+b)nlGUz#@A4ui#63_uZUgGpbW?^idtJf~ZRp>d`uL0ptTW) z9?@1E5*kVq_>jgluxs+PW##U;^(C1eJ>a{rB*aSRBs*S`?_K7dB-$tR^BcoSC41U=O33080c%1B0aA65z?X0OR$%keJqJV z^TihY2^*L!E)NxVe`LFi8E5is0tnHjJTY)F0PPs%SxYB}%c89&K>&Wrz_0d^!$4CG z6)(`mnIBU%J>s}Yq4Uqn>;*dS?aoQh9y{$X+u#YX@79m7>)`~ZT0iQ6YuEYEzpbzG zq=gb*d#=w+(VV-^%cU<=q^v_azstAY5C*#}>mD@{oY1DK(fQ+M@bVRw|JGn5KMc+K zVO|^777)AtW3nsE%-Ax=TmJz5IFD0|)^>~*Lg^J@bvOdLZ`UKut?b% zmJR6|w9hh6%`iY#f4L>XkuCj;G?c<9A+m+j&0(KlRk2jNQHB~q6WYfqNF(%M#91HR z7o zA)(xKWyg&HALCWa*q7{P4kjeQ-Y#N6+rKW=-3y(d7>v{B)(5iNn%w>ey_N>b*u+|K;W3a#HW+*)P(dhb8>? zVI|UT`Pue2_{tfUJlfzf&*_c3+m@o*k94C2{`ju6!y9LX{|p_!I^xX)mXJbG>qt$y}ioasfi_^_+Q1-Wf?K8Xi|G@e$ z9~(|2#080b0HfTGC|UOw;;RV;&Y=S9hd7`5n5_@aTB)&I|6tN>N{o( z3CkF|%r1uxG1Bz}IQdBIl`DN!Q;=;~B(lz8UP4L-gP10VnUcIeIamx1EeDVo1} zcI3G1EMuJy!3b`gY6AddX&);X@o-5RNGL$y#Rgid$q7KryS2)E&W!D_Fjw;p`G`*# zR9}&^v8Ns_-ODbO_sXYl;G8FkvH-Vg4UQW=Yo3nmf^r>KvX6-lhw7Z7` z_|WfXB2cQqr#XqEEAG-E7tUABZ1R ziKn~}cJgicu3Z=xv+NAeAZs>&G4=_GSoN}@A&0gok4JmwQs@O5 z`9Ut=E$ef^H=VHil^}FoNwnn8?$~t_CJatg*(w}Ls!}Uf5;gop3a3)_{0$}L??u96 z-Pt!C0N7s>pF|%qr%bj+@(rg;=u~(@3OL4({a7Fipb)vHmc>!&FK+Hr^T4H>f+dnr z6}Ge!c!Gn21A*B69l?|Iqy+8AgpsZ%iaA(pMyMdZJbB6$wB(`U;nMV<8@d##_~*{s2#=ma1!e=iS>A?= zbKt4?Sn2we)?LbeZBAMssnkqOz8rGqRoq1%17E3$<1!CHv>{>i^BZ~>_=$M@vsjMw zE%xaW4uX(OGgDukwPc)q5k$FXV&rf3`aj5Wv;farSigCy6PYTGhc+g{5{Icy&!mWU z2l$mgKbyIP%(qC!mVW!kv7N>^N~VH?gL8bN9ZYQ7}FNY+W({G`#2_%yH6Am;kl$r_2%1a zGz~+2Nvn|zR2s(x{xOX7?7G=_;j1E$+*K5j@PT33`5Z~eS7WZleDw-g`Rz9{*#A&@ zQ1D{m&6gG?exq{h>OmFhsFXmGu2aj4K|fa`ZVGHhlz6+%JY$R$Z^qzB%j5NvU{BAd zN29g9lt;wv(UbF7_PK%HmH(4TDCB+j(cYB<2?eSv_0%4yN5Fx0Xeeq~8|g;oK0tCE zH_;Sw4$JwbZTRIct3PcC^BsawH)@m>9pzOGIt6{WwQ$ynMTgCb<+XLSHi48xDbx%b zn{$!Lz~jH!O<(VK81r>l*$J|29+LqiDu{+$C2LEg5;TL5?$JLn2u@f>44;_iU+;g8 z4@@^syZ%Bd!Z7z?;aDy9f$h~}UevPT&PqhnhY`Rmz{JF)>r&+YT|V3D%x99dFyn(c zvEeS?cDb&v9D_0Z`NTjvR_h2>ls{VX6{-($C~RdZj*W;QKsy_AXORVqIfVQU!!vWE z=puI`X2c}tDjdUes8NG)1NnF}T4rRboMCC<4(gV!* zsAqp~Pfofe?R&#b^D51SqvD1?Cz2qwA~IFt8E5M;NBTg$?a{-+mA$Bwve(|7aE2Q8 zl#oZ3T!Uop9ekBpQ1JVQO^m{w<5YC~PlmO&E~5<<^zgs6X#eN#`rcfK#?)q+SN-QGpPW$sW!+l?DP*5>Ynw+KAB^jg3dz9M)(|Y48`)(J4tGuuv%MyP~EO-bmL1Y=oNHGn37E z=9mSww%5fIltE8b;K%h&nFG z$`fU9&t1CPLU&Mub?XmY{UN(^R9j4U*2D@_ny^lo|(+Ri7sNj4l6WbGNgQ z&mHV#zTBX%~2b+@DQU_MU`}>7UF4Dl%uufEo}Jx7GHI;ak1OWZI2^(Dx;cH z!~#Cs5`2c*%sv|k(t9)G;I&6S!qkn%xjsvecm>%e08yvG+dqqF#Yds`Um({x>upO8PxD%QBXN=)gAJ6w#;u9&M2&|+vWo0UibL{G{M#*8(>SyQ`UcFyh z7zjfTU$fq*Q4;k zPCw%BruW@nVGbG4IDfe6P3y~LQF`u7=wJ}8n{ObAF&rvX1OM@?aEy2z7OmT5|GjT~~%$%aCLsLg7de z_U9huoaWMn{o~_WJbZky2c@Br>8resB7j~)0#bQs4FyNETiuEIefv#`KM_mFacHj= z8k83a2Y+|r`SbF&SL0-TeTRWNGs2eld=fqx?oT=qVhz{Berev7ldy6tFS9?5I;tQr zr0Au?1^o}Zn%@@0VnpeaT-0+4U6|L|^H&HT@R-{*|JR7&49{sCtBBAWleoaD;MF!q zqINTF1FP#{?-r)IHo&mQ{QVBE=8?zn`z4@|?qc3=d@{tFIF4Fj!6uPV>x{hP)OZ$W z!@oJc386DpCX9pCSCa9)Wv>kI-AZF?(Y@{xu$`$szCP(tBgtWRZIw>JEN=yxaTG?A z%LBOGtvJK8_nRc8d9e|@{{zcHV|O9cs0cc*jnE^2>x((oj820&t_%Umq@skjIT z15DE{1$yI&t@<(~##5sEJKST?mCm6_zSJ56^ZHH@X=7lqYM5MW!S(%B3>c;Zg?2HA z;sDe()Ba=CBuQgp7YvKJ>+SONG^6W}H~(BWf1!!(@);>f<_8Q2bEB1T3UjxtejB(} z*nW7ip#cMg`o>^{CCOnGE(@BzzTq3+kPTClL6eXjIwF>%iNdq!wQ^dQWZ?5PY3{jjgJ`@*??nK|=GWDllF7 zgta)mNF>A**z2=mH_FWi$4O0^k#%34JXor4Enw%I*I%TVQ*bmc1K{iE;Yw`3nYRbI zsaQma5*s(SGoq&g49yu$ul~%{EFI2B-wbp6?si?#7QizXo>YXsHx9?Wlz$=RxL&?l zK<2|FE%dg*x%bBDUSg*O-QT0s=p0=;^k_@AeXYht5=ZvT-A0=BV3N>|^#AN1^G98J z8t!6YM&utX=@-b?P2coF6w_xH@lF(%?Cox0HXbKC!`0prThjD=V{>iJTIqsKP@!fQ zhT7E_O80R(?eI@yYQI9ZewkqOpX#1gH$#@tz=(hK8u}ju7=$*eZk+?jhm+_|p8(@qwi}97TcW;F`ZdehUB4Oe-mP z7t0sfjC-;*&ogUz{^9%Ho&$%r0~S{N()bHBx{f+AfZ`bcy!iBGtgYD;2j}?>r1alH z2NLBMK1AGS(=uW!~6Qi!S+|q#47kAp~YuDfO)It1UVDY{>|A3tt9D z+r*+aKfK+=(1tVqx1LTsb`oZl+qB0nQK1*5YsIg$ni$*ot3UWr7=D|%9ZO8h{93iw zfrH+^X{J7~L5X&FH;>;X4`3b)O7i3pVI?=xL$xstRuhI(bX)iVeuetvk`*?D@Klt_7U@dyR}_uVrW zR7E~_5@<}cLnV~;Du~Qhi?R2e57VscM@Qb?9_`X{`^r%tx2*fws`ez5hbt zLi1OK75|PLFAGdXaSpS;Hf82imj1+&AmIDJK(dc_+S=&3^sOtB;g_&vjJdkl#Xe`? z#X*2ug=CV5df`3faX|?1W2?HR#QJsMeQvDtlpaJ+_w4sJ7xqU#Eem!0Y@ z-$pU$noIQF^gXZ_bUz@<1v+6gyRWVq*O#*Ov!q`oiqJJ%ovrZ$09A4Sd{wy{Q`!Bv zYr@U^26gnTnRTU7yp0LsKm6AL@-Sp1_}<6A#*6{J%!|a~?|!_fe8eg{ee!V0RM?f2 zXr%MT=jrI^?{{!a9oGzz{=_Yh>)}ZS{}$wO6nj$Mz`t|ha@zsHL9DaMWTKa{IJ?6Jq5JQuNv8kh!;HJ~QaPrUG7s*m-cGk|%Co69IS_#wmyEn# zME$yaIf>zE!70nCcHjqkQ#gxNzga4GzJTlL&XJ_OR*Sk74fb^+$^H}8qn1aQNQ7`( zj;iVY_R#}KqII#p@AF||%7YA7yk}kDvlGcXo*n|{jcsWEJa4Dw&OF)DA6xsi#qH}K z2*2dTp0+S^pDJ9@dlW{>A7OGecRkiBH<6EjH&+hm8(iZKN z+q|)_-mI9i0WQ)_9)P&Gq1^U)@r#;L>)+HM7I)pF~ctmH-MI*V*kg(q<~Gt z;EmZ5Y#iLD5-U_%WQ;kvvhis3FMS{hJ4yYuZhPS(cQrZ=`zAO7E$2;jf z-y0@qplH~fwl*3j1t=fAEBn;n&-cFVrR*H-%a7VVK>s!jt7iMZ=<%s^`q#wy!wT#m zpfJ-Us`g=jxLZNLmN1Mo+HE@`d~?8lUC@-{-Pj6RqudxQGcEF#`D(1kDNAPXmBDW3 z;)M*@9mny*x7}{Z@&Q`BRogQ|wF_k6$Ao-F`42y2X#7yj+M9J1&n#D*#3ueKe&*V!oteLC*ar$^lx>NEt3J^IKQCjU4 zp6E9EWX*C!v#e-G1Xn2)7ltIFnPd# zHtW)}l+F3w>?h+CdKvfkz#nSZb;9n!YNX}7WK2^h`++61@coYNLK#Woh6b_$hEGRc zf|fkc$jtnYFHJH}5M8*w!rZXgbxlUbOExk^r&>jcQMnAJA4_vKhCE4|v+YdJx>M>W z^#>_^@@_^0T$rE;8p@B-QWEYfn0?Q@B5FgG)47wz!_+rJ?WCT%NDQ*G{YOYP_D&)e z4DTm2eJXEH-}3L?XB53nRmhJ2mw6q2RD?9O$5mkUvj4lDY?~wRIz&vXfWIsM z<7;(C-C6z-vaay68A3!B+2Ly9i23uF3Eg;)1r;TdogdU%?fX8hbyQ!%9L@`gX30k~RooY&LY{ZdyLZr(=cEQq>Z03ms-*G1qkL{K^(0K{V8mU1C)dCA} zai7-67^zuv7mjVj6%M^c`;_@WNxg%~9@?yt#{!g#)53fdTGc7H-4STfk!xy`3}Hm0 z>u>5uYwmJnEqBZut|5cj>5V?x5lc3d+pkD#q%G-NG;%-AxiMO{3Tg*8NY4ycSp#}5 zkj=S));vXF0R}fvk^hAL1DV+RcQigrJ^*c>qrNiN3M*t=8rYyfVJs3k-v|w20G<7I z)HY=y13gVpwKLm}#L2~(|D%74AaFLHQ;HVD+zox+KNzGLBU;T?d-EX(`Il+g2ch3& zgjV>Bk>f#S7ob2tg(*kLX9+B{L$=T}Vy0fZqVUOU!NBAF5kVuKnY%J#m72gKytcVK z$jcq9756k9h;@(i&mE(s|FWI8X{4a@&J8BHN|gGHb7(GEvD%WZ&@*r1mmA4*e9xqE zG~dFG=G_}*UtQMAY0SA58EN$KX*Ji+yV^MD`7x#9m1CR>=yKy*oaUEGX6i!7+^pZ~ zudDW&LBx^-Cs0BtBM1RU`EOdQT1SAYgjY3)IJdMjar~uzQz4otHe(Qqe4qyhZc?~_ zx3q}&MoD=8LB8m?;a$j9+|uHJ(W_EuuVxvmF2RqC)c)cNxN9|59V3E!3T+qKv z3j7(O9Q@Cr+N=sF>!q~3EtWbqV0vZ5Y2VucF*kx=SPY>$3=k}`VEcH#XsWIZxot!U z>5ozAvDf-h47P2GpbjIXAMK=?1Y5yAgJZLdGvtC2^S$g>LMNsM>*VwSc{VjJ^;5u`; zg;d1F;%cl{>}T0#H5Mh07kxChrE-GeMtwe4GK`L$fwa8obw?9NxQG%@X{^Hzw0UE$ zqI(+Yo%Hu6&|D9_EjP{X{PQ4m9y(C6CK)&G+v1`M)t)^ZA1ynHU8sirw}fj_Ik+s_35r@62E zit3B^9&+eGxA5s1`q+ILt^Mokrt5dP)fSHJEVl6ySwW-{O)?z{TJ>V zc*ElCv-7(@b$%WAj7dDpJvOer_&tz3yEyoFDWpWJ!MyNXm3Y0~rfL%o9$EzRXvw(`@HA3@E zN^o1TKe~hnS7*Y)xoSZpV0p*|6t>)@PBqP%X1i-_rAv9D4aC8URR=|u&H^=cr6Y6s zL_~cr&0QFgeiS|_o(x^dp9<=StH-%8Qc})$cSu$G9Z%2hv7oE76-}c_2mg7qteZ5s z-DB8;EQNv_JB$n1D!0F-v&!y1zlskA`RN+sQHVeS$ImRQm}~O+ZQ5HS6yul1XHqBs zD4D!0UrF;w^*XU2!ulTPfwwkWSkhUgtsfeU2MwBgcrZLV`Dc6%N$!enqTbLz+dz-f z+VK#40H~{rVJvEtWAV;m24DYv+AfsP6+jPAvCJdrg86XtwQTH6c6w%`fC$B+}41drkMZch?ci7MRgzQ%9?w-?N zXsf^k$qqX%Bv>Llts6Wz!y+GaArH6vk3O^{n|}_n1SD@#irrU|{@mk2@EGkUEnI$H zPvS&7lcOA)PurDTyjd-y|F$lFep6g|Y_NTkpaE>=3_BJ-6(q^s_QhLsSLq0d(I>3y zGDU4XJzU@2C?)fM+C{_G+1l?q8)V;L^QjX;2mLmCry>rG?Hi@T^qBfor>t)NSRxZr zv_>YU36PtUEwX=Elc>0QPqsiR=%8|p&r0{dQyU%KVR43Un;E{~ zxbD`@gDfn4uy!2+|LH;4flm)Q0v_}eJeA}-+}%*SS6#gd!`-YP(}G$)+eF3gqkLhl z9^_DmbMzJIg|e&23sXDK&FZ{^(X*s_Efm$a8%_s5GMy7N%srPfPJ-AS!uhqmHKSCQ z@wo%0%zpsrbXfW|$6eo{K^WZ1lU&dpF()D-Z$9^oMt-d#uHD#)1=Gdx+uL!JGEy}um$57 zed2s%m=>Srp zce$sH8WUxp%B^)!z#dtSDfqX8Dr)0Ctpa(8#xb|Xf}UE+4V6B z=LYP7a~1?pViyEwfA_6Dt=_B7Sz*jJ;u4^JBxj4aFpOp!D&x|dNQ+8!Ua6*p4suke z5Pz{d*W#tubRk&l{XSd9;)L$Whx8d4+SyrOVWomm)ABulR*Bty`Q^uU*Te z_nP(;phIap=T?JmeO`IjJvTcI&u-^BHnUj@H6?R~rei}$SzrS3 z6M?1!0@a^v8N?P-yLPidS!0@NSZTm1 z`U{mVpH8UUPrvM{bF+RZkCs)V>6F8!28JLWNxs_toUfDZj9=kt#nosjEa(Z8iWGqt z;l-337z~c2l`MW~+uxP=^piE3AM3_0pSfzezO>F8(A2@T;=EoC% z@pWH(EiXS~S&iwA8~aaCpBG zA6WEe-irUQudjtpwPop%`}oAP+yu_jT^rt=FRm_2X6x)VkU5mL1PEAt_!|`urTJ%^ zsr$HzQ*$U7)B5}$wuSy1Jz$KYK}cpHcIf>%$J9gzn%GE&6pLT`-A4gql-wQ;u4dKT#aAB{i49IRJgRCO6B)z9ju#0A{@dGc8s9n~+x8m{mZ((e zO52#>3(OzA`VMdf01sjB;*mKOIQjEWn#ftoyOS?Fy5Ub+(K})w^`RmKC6GG*%@#uN zr6?G0`l!L25oM%J_C$;qWd}A_n}t5J|8|d)+va;tY?W@ebdpUX$58jJL0!+s=9B(` ztCe(*3M3w35Wn?aTU-NI7vEvS1nW22Sh8W<EZ{|1ZAPgYf#}eEu#vN~N7MrX z?G1hd!)ym|V&&fgI}8k7b4HgLqgyTg+a8Y1@td8j6SaZ5#%BJ>J;?8SAvOE&-awv{ zPHS<+b5Z$?*A%&2hz;-}`ReS0nB1$QPo=I2WP4iJ2&_QeO{d~e-ZlJYKtk>{rYlj4DZyflGFz>6 zTk#9}%WzmUuX{<6Bcb$y0A-D*UDkzAZJ~le~psk-86H`N^zAB;c1l*X-s zn-CApfk-`fi67|xq80sP*-+BGux`BY_x~SpvZWlG?<2sI298VlZtGJbS;VeKaK3jA@p^JEzrYACCvQ$S-k+V@N&@g}itstX=aH#wOTras7Dm4^lvBSP#A7{3PAkeanHYpJ52_*G#YbFc0Z z1YEZ+MSf11{~5JW<{h4HLr ze9wgz!}%Vx)m(S&FHa{5OF8F%3u(BA9gGKe{GMb5?3l@mmQ_aX)QmC{uG_;6K?~ve z@zTB_&g4~Ig=l0Yz+KB`wIS&H?(o-eje@cKgYV-s?DDNrSPi1^)_L4y=d4z7Cv&yK z{;$FW4OD+g&g}-ZYa4E>3F82lX3Kp`dIzAx@qQ41uar z8AkvhyghHj?hXw&K@JA!wkLTGz$iW0`;N{!k&i#>W~)WjGYRQ4bks3L4LY40*}Gx2 zj#ON~BYkhP74udwPdOFM?RM<_8x)X>)6Uwsi@&QGLnZ2r_N}7CO`&9-)Q^PPsoKve`-Mh#W7{tq)xbpr0=T?3 z7yxR@e)Ark@r(_jF)4QP@A2qx)M3}t&rRS^EN;!@&5sehsl$T$^M%|}r4o1lsE$V}*(%+xCoQyyp1ZXC zm|H{#`!pGxlm(D`2fg?c5aI1eAP2O#ghl7)A8d#@cy7JwX7kh{%Y_aG1wX^0a;B>B zBI1Q*%ov2e9LS*t&N9Vm?;K}=DL|35eT)W5ro7P4XW8MO>_)j*{%DTAHL!v!**dq_ zOnm5e`cXJsXoI^!FpM;^1?MasCAiSn7yBsi@$ArY#0YW!r1eNj11;8{OL#16&}spD zM}&VgP(1ATm>6~NzZ)4ea(>`l^6;wOS*z)AM%dY40B4-*fx=QoMjKK$nB2OKz=N0D z{0krgW2tM6>XzPv+LthSnCqJbIEG8__h(6QWY_;;;X*ZQ27J#F1+neueL!Duakw(( z9%n1vTIU+^{3jkFn%--+y58Yk;`Se!a%pdk=eSy$)aLayu0O$22F_1_qkl+mK;NAz zZaX_e)EzKLti>+l$?XL{6oA2RvISB`(kO|ZWE|frYFC6Awmt~GKUE$K?g+8R-I>W8 z<^b*01_9zW?f4(TD8WxYKFWR@tKrkAM&KS*DOp8lzZ-%442zYBn?=RXKNyvCcz0>Z z$UpGrXWUv~?fTDZieX$M#`G7L$xV?7id9^*lQedS`wcHxMZ>w%R2qtFZ=K>VwbC>< zT*I4Lfu_P_DnBZhQ%yKm?4VF}?m48v)B zPNM;8{&;m^&t~esif~{Zf(TYCyuS*^Fg2U9oz8^MH7B820!`qb7IzfKznv zs|I=%^#KnS)dbHa`Lj#L<@&-L&savOZ|j%{=aCK$Bw0;9Tq*Z%CRmi_*p-tg3c(UG zU!CI84unEK9-80Np4@Ld1I@0w;vDVq@3DRMaH0g1W3GtIlNq_me z|9v0{{bzT?9|+M!qki=iw*6d!Zntj$GAA0gg<;|!^48}6V94U?J+hJ})`unMhO}0v zC?bWG8B{(mqiS=;^e%0YN6hm%2R`d(SOl0c#j7rz@&Gkz+`lOt6-BlQLj+yl|TC(xjC_BF`?>qDA|7Kz+rp7ZNC=O z2e{FP6w@WUSq;$UiF$EYAnzg)L@}=a=kgTQX*)rTjfzkb=^FWME0s2 zR~{wKv6@1&k_@pGj-%woKDArt%D4O1lc)K)Sa4!e# zi!IijyR5HkAH}uQ&Le@FY-8~;V{*04ik$7aG}mwvxV&DpwzWxON8zh#vc}!0#7^tW zVt#!oHv2B`*pmibKxaU_ld~m`?p62V1$Qkkj0SGiX#*j=aAmw`q~7?LRVUxNAbL>= zSg(X=J%~n>*?EO8xt|D>w+5XP-AZILuePWW&X?Y>e{`=PfQLNzgq!-SE=It|7`w~ z<7lG!&(F1+nHYny15R77Ema6)C&g~{1#q4nbOoZ5P(dp}V=lBrf(0HTW>Uu@>OMso zFmBKpHpvSh$4H(n(}>aOer8vmBcD!!+hZ@`6ir1Va8$6i^||8BJg@j znvK!32=k~#x2b%zu|*dN&n6L_N-bl#T@r<`#Qhrzc-krVTu$AmvTTo9%(q>sgZd~F z-wqc#Il0Dqc8#yl%*p1yAP{np2OogfB6!(=DLjM$5sA{Ud&sAJ_R^DY%^$q5X?|tRo;tN3J4KyAAM6UU9Vbrq4@i^iZ zGO@V8_A8G0Gmud-ci>rz7ojEMqjSpAtk?{TR<|+xazDAVSiA1!;cbPkpX}^+BgF}h zjQT?)+t!Y!*n>@)j}}bH9Bw&twB$u$CbeH*K9`sJ6c@2}0K$bL${_nlX}lOL<{3G@ z!HEJIzXtl1jJ?L|>uIoZqila~mP=lBs5~-#%jHoZ?AaZ7o%nA57Ju5ia(TarjcFaz zc1l?5y%b!3-+ehhzM03RgmVc&=^6R1Sb8x}vVRF0J!2xZ zHXJ_SY&ziHb_NX1x$oDmYwja;?#A0(>fd}aKpqKKor{4lM4!(@Mi}q#oyN6Q;JPL^ z#^Le>=azcUjZdSeOMW&M^=S+8uo2{qKn`(iu02+3C;^(W>14+pIv(C7-Z@W$$@<^= zDlMBoV4nv4GqSLFM3l$enfE(}my+<5MAtOozh3W_^RV7MO+u_Ei95Nc2Z?#Vc;7Hz z^NjJ_R^P?MHntdWP!jb-#?-8Tj%rJCqAYVY#sjFS&xUV4DF|tEI*{raJ_c^>w%{k& zBy|dTdxfC-QRATnH9*&N66%Xsd{m>BGSrH--mlVd3IgEFxgwA{QEUHSyHpPPe(}k0 ze$>4WQ-`2ok}_((MR_Jvj7==Ga4u0$SzTcB8Z#hm$ym$X+zCThP{Pz#mHjWS%IqRi|?> zCX(pH|9Bc7-x#+zV%zPbXe@S#pXy%b3N@0DkZ=oYG-O-!R2N^xQhE^w=3W{mR+o#e zb@~SQ1yD~(02~)6r|mlmJ}o=K6oKNOGM$MO3?ZZ7VgzckK0bcUMoJ)LD)DZ7gv=Nh zgOSYcFg|O1))cVTR(wYe70PWD4^Ot!|3LK-v7g@v8CI=Z*Er(VH4g#tMSWj$09~DD zwvDm4?^@fsA|eqT>-&zMD5CpOnPC?r8@a zYwwV&uS($gc!1_N(PX-*gvDq-V9t$?Wo!gDDkg74Mp1;TWx@yQ=In*fC!mq{=h}s^ zid!B4cU9UJ{8;-Jh^E29AL7Lv@jn&h9r2PIwfmb3GG|Z=r|v;{Wxhuk;4l9pwp*Wc zrxg<|*d&9GCe*gSt>X?B83feNs+2Tc?UBzwAR?2eZv=2k{kq?Zf4Q&C02lcd;}do7 z*9AzQkGpMNYz%X_?*i^rK14*=0!J$o^S!!z^t|z8Vh}G(C&^+M-1qSYM1Tyzq#rMo z7qpcmoD!2lRsdpJ;&G8J$em1C19J&`!Px0zj$KH8H>$BeWPkfp9&O|iKnu$2{-D0S zU5_3wZvNqM%Vi!SMSSk}w1G!^D5J_p)MfXh_fhf>P1lS}0C~1H5?F(}b~8ppt{I`W zXiz~6v%~UlH#l-~b9SykZH5bk3^3X>LKxLRSxWhDdJ*<`bVb+$0wk+$xCg)tD5x*s zsXJe(?h6bx2mdlK_bz3W0*Dwc9Y*m_^T>nqYLkH7wWCg{K&x=CRsjW?(QvBt_F&!> zlZ=2J(9!$LVTcK;2DEl+w?OzcJ)S}+SNQoiom2-9jnC;m;Q0Uuk|vYWIVY08?y#@a zi45Y;T=5GhV|zQtnvR^mVx5)I6IJU6mf^LBo`X4 zZoIAhv(%nsobZ&7Zy-nIVg@4US4V#G zLl$ntdP$~$2B%g2`gpCWdRj;!k@BK)XXPrJ$!b?w2}F`4m2K-7)?_TvS+* z7FE}n4w!TzhXD8huEM7rEdiimvVTD`6q@iZa%xh>W)z=>rYU#^5HiiHz1!?oV2=;4 zOZ+-&mvB2CoI-}!AEE%#AA_U$htY%Y_noSKzaJbKG2S?Hyr0}|YP#90XSJ|i5wTPc z6S}mBn>(DJKC-^Fc#n=sod0HH6~t)LANYn$4)n^XZ;N?7ab|80MgD0dve5igL_W?K z2^Ejb1h-3|F#Pf`oc~cHUe&ci{}?Elekq=NDgMskMSP!0X9+vpP~#M|pPN)$_9+o0 z`;#?Jnl85OZqU5(Viq$4jy+{i8>^&J9I0~fYG??u8D#e)v;x%f2er1Mcw9{n2FM|( zcs|}S2q1$a6Dbrzf6$0dN2SWrLA&Wr$H`u63QKxQFzaNt_;S@P50g{1v+p2)R-%s^ z0Ak+?Jk5tu=IOe(`@B?wybIvCw8G%nvwlKSdV;g?J?2@!)FwoVE*SSwEp{-)dhPJi*-Oxp+Xb#rRcg z<}pc@2oYJ=z^E9*H+?f^pn#H4etU`aLoe@GjF(xzz}NBA9#D4G0C7FD0g4^^&lFb~ z)Ta~jC>4>vpJhqI)78_MCyUn&=%mzuiKBODepm2g{;TKx+@D+PSg z#fXZhfDWKF20k;VBH2Bz#MQ6P#U+u^fln;>Fk<4;aw8mJBAB&Lr!EHb+*X6V3_|}+ zGdJI4N|c&+40F5db0Sr%5eaNk0d{deg~N^Yon!0BCXPH|!JoC~v!k1IF_g2R$s)I9 zxn+^LC23KIZY;`fJ7{4kd%?KdJ7zAm`*hUV&N}XcH;obaBkc)HL^Sel!~{eVf8|GW zX2;;slXyFFJ~PY^`1?Mjz#Uo$QmExxEOJOGOlVNQZ0__qxFAnRfp7zqMIM=19azsc z5QJGpO(eDF#B-&Uxc6S?;j3~mj)gY9!=k;Ibd=&<$ zBM&@!U%ez3WmVQy&dvPJXWE#1=qTlC``*k=iSn9GB5v{tH&Dg@lb~j=>DHg|)79`N z&j|uk!4(Ne#LQR^3eOR^{OY8>ze*`r(~+XR@=ce?$w5uug&f>i2xtS=kGg zy;5J)`}1{xDp48~&xOfY_g@t&MYE{{~1MiQGO$?i;sC#bx-;DM8>7kJ72L|H_4R)D7CqTv-j#5}U z$~DAuk=tDxV75+A9_RR6s6LRe@Onyg%7FP+ z#6?xR{Gv~h+yxUuq*hKPAE3mXfo}%vxg5|r5mIC+SOypQ_!10&y9uuNUMc7%)TR%q0glT31o9 zzU0r!1J#MoB~@)@HOrQ&zSaTsOC!u!1xXAUEWpA!Kb(Xrhv3f~x3gw-r6z#pxD|jI z^h17f(@A!sfm`8U02?j^;}r0^E&6G=1dFko2d@NEDBJC93XBpV6wWCm6ja<JgBxZM{7(lbd zI}DhR{9ilkhFrDBwAr9RD^-_p>LI)$K4vQ{a;nxg`9QccU^=FtLNuoK^iJsSscnKWln0hY$v!l*>N`dXsG^c=cc}9M=O015t$V48@nk>81@2L zg?r3UQVqBBx3$ae`X&pl)=;OrY=9_uffhVf@grJdqH$ALFJ6j1TF19PMxt^EJL6x= zDCx`ZzXh{AoKTng7-C!GSjXTtpnfAkQAYF3-BM-$5tVX&m zqvcV*Qv7jwxjOQ)33mQpuVVQZSS!YyZ2OJ8tUx?dP@3b8Tchu#rruP>wFmcF!P*F#?R8>7il@Y&q%2la2xy0UpP zBr@fhC6>mf9)9q3xjqWIuuv~cs<`@EebLs}&%lOHzE|W!iZ=JIb-0(FA?7Zj~EH`Ctnr0ynq=qP=d^;q+boEpE8xVlN!6LLI0d0*e`9<1E*K-J{^ zR={JL)uDMWv;*7aUrQ9*_)>acPU^7n7K9ZsVVWR zSxaG)sePPAt|x_NN9!1u0{a;H}2_9q+^=kn5e;M}p&ne{G-a{sor5`Zo9U&Aal{ znS}y&#gdfNdEt7yYu5YnOWIqG(>Kp1Zw4#NLzuWSWabLn<_P4f|NUmbvTpe%#(K%X zhPQu8FGUcyTwXDbylj^!g+@9FWB;Yo=FfF1mWSrT79#6OI9sNbv6th1d5|qC5*Muq zE*!}Tn+lN5SwtCbvYZ(1W#qY()$4PlNfY3TU;!x+%Y804$x6*8^r%?r#h@dQ)sl(c z%eph|$3uR@h~sLez7!~!+ae_tR7!~?xU*L6S4&b<9C0p366cr=Wslk8UW(A+xlF6L zI8i*?u8TCYbWh;)bPu=ro`msi>G}FNAicniDS-vcQtqumzsQgjiQ^sl4o=>xZ;fsJzbHYe^?zSDnLH zv&|zZ{)j%j{W$X!grNB5NNR5JK6SmzdYasZ;{>}UX9QQvt*_1Ay<)zBkiwURUjiSb z%X_f`N((0hS;u=(5qtG}_kCC$vC59NY+0wBOf?)rY+U%95oK0=t%czx$u&F>G{~MY zO=v*rDRM6V?|$r`Qx7LPO6pp(v&|lYC9vwCo6mu(>!F(*4l3;36%}49M&Tyzht(ez zU{t5C_TUej{!mSS6Q&H;f%o!K8d~(J8FT*(p2;&6Zzb_euZE%`zmYN{ARmxwYKCxe zK;CpF$UT05v4vRr8b}uEo0+?8r1==>}8`=tU;(2-S`M8R|WgvVR^!uI3jX}MENIAW$IzeA=Ypkp^{gflwAHYQL zjlH&juB!ba;+O{CIvLipxlry5`#e5OO3hW;5bO0K(t!KJ1Y;>P>+WDPZ@LB%DbISD z;brfvETPmz*l*Tb>7+v*Ihl=r;I7CRDm z;=giAJfHk%2Cfv3^OhBtH86Kb#Z2_y7O^ diff --git a/GPy/testing/plotting_tests/baseline/gplvm_magnification.png b/GPy/testing/plotting_tests/baseline/gplvm_magnification.png index 584578a00c815274c26e5fdcb2ac55dc93dc656f..b2c18f4f257eecaf6998768b303cb4f4035b89ba 100644 GIT binary patch literal 42418 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

h+dkP^Y|G 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