From 486def6e0c0c415fd0bb168d9b81974a7ff37607 Mon Sep 17 00:00:00 2001 From: mzwiessele Date: Tue, 6 Oct 2015 18:20:54 +0100 Subject: [PATCH] [matplotlib] plot updates and testing --- GPy/kern/_src/kern.py | 22 +- GPy/plotting/__init__.py | 12 +- GPy/plotting/abstract_plotting_library.py | 43 ++-- GPy/plotting/gpy_plot/latent_plots.py | 226 ++++++++---------- GPy/plotting/gpy_plot/plot_util.py | 30 ++- .../controllers/imshow_controller.py | 14 +- GPy/plotting/matplot_dep/plot_definitions.py | 43 ++-- GPy/testing/plotting_tests.py | 31 +-- .../baseline/bayesian_gplvm_gradient.png | Bin 0 -> 18045 bytes .../baseline/bayesian_gplvm_inducing.png | Bin 0 -> 6839 bytes .../baseline/bayesian_gplvm_inducing_3d.png | Bin 0 -> 11266 bytes .../baseline/bayesian_gplvm_latent_3d.png | Bin 0 -> 12032 bytes .../baseline/bayesian_gplvm_magnification.png | Bin 0 -> 34596 bytes ...{gp_class_.png => gp_class_likelihood.png} | Bin .../plotting_tests/baseline/gp_class_link.png | Bin 10661 -> 0 bytes .../baseline/gplvm_gradient.png | Bin 0 -> 18138 bytes .../plotting_tests/baseline/gplvm_latent.png | Bin 0 -> 29221 bytes .../baseline/gplvm_latent_3d.png | Bin 0 -> 15446 bytes .../baseline/gplvm_magnification.png | Bin 0 -> 42299 bytes ...ss_.png => sparse_gp_class_likelihood.png} | Bin .../baseline/sparse_gp_class_link.png | Bin 11370 -> 0 bytes 21 files changed, 217 insertions(+), 204 deletions(-) create mode 100644 GPy/testing/plotting_tests/baseline/bayesian_gplvm_gradient.png create mode 100644 GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing.png create mode 100644 GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing_3d.png create mode 100644 GPy/testing/plotting_tests/baseline/bayesian_gplvm_latent_3d.png create mode 100644 GPy/testing/plotting_tests/baseline/bayesian_gplvm_magnification.png rename GPy/testing/plotting_tests/baseline/{gp_class_.png => gp_class_likelihood.png} (100%) delete mode 100644 GPy/testing/plotting_tests/baseline/gp_class_link.png create mode 100644 GPy/testing/plotting_tests/baseline/gplvm_gradient.png create mode 100644 GPy/testing/plotting_tests/baseline/gplvm_latent.png create mode 100644 GPy/testing/plotting_tests/baseline/gplvm_latent_3d.png create mode 100644 GPy/testing/plotting_tests/baseline/gplvm_magnification.png rename GPy/testing/plotting_tests/baseline/{sparse_gp_class_.png => sparse_gp_class_likelihood.png} (100%) delete mode 100644 GPy/testing/plotting_tests/baseline/sparse_gp_class_link.png diff --git a/GPy/kern/_src/kern.py b/GPy/kern/_src/kern.py index 453f5c2e..8bc053a4 100644 --- a/GPy/kern/_src/kern.py +++ b/GPy/kern/_src/kern.py @@ -224,26 +224,13 @@ class Kern(Parameterized): (0, None, None). :param which_indices: force the indices to be the given indices. - :type which_indices: int or tuple(int,int) + :type which_indices: int or tuple(int,int) or tuple(int,int,int) """ if which_indices is None: - if self.input_dim == 1: - input_1 = 0 - input_2 = None - input_3 = None - if self.input_dim == 2: - input_1, input_2 = 0, 1 - input_3 = None - if self.input_dim == 3: - input_1, input_2, input_3 = 0, 1, 2 - else: - try: - which_indices = np.argsort(self.input_sensitivity())[::-1][:3] - except: - raise ValueError("cannot automatically determine which dimensions to plot, please pass 'which_indices'") + which_indices = np.argsort(self.input_sensitivity())[::-1][:3] try: input_1, input_2, input_3 = which_indices - except TypeError: + except ValueError: # which indices is tuple or int try: input_3 = None @@ -253,8 +240,7 @@ class Kern(Parameterized): input_1, input_2 = which_indices, None except ValueError: # which_indices was a list or array like with only one int - input_1, input_2 = which_indices[0], None - + input_1, input_2 = which_indices[0], None return input_1, input_2, input_3 diff --git a/GPy/plotting/__init__.py b/GPy/plotting/__init__.py index 7de05473..b898f9b0 100644 --- a/GPy/plotting/__init__.py +++ b/GPy/plotting/__init__.py @@ -42,17 +42,21 @@ if config.get('plotting', 'library') is not 'none': SparseGP.plot_inducing = gpy_plot.data_plots.plot_inducing from ..models import GPLVM, BayesianGPLVM, bayesian_gplvm_minibatch, SSGPLVM, SSMRD - GPLVM.plot_prediction_fit = gpy_plot.latent_plots.plot_prediction_fit GPLVM.plot_latent = gpy_plot.latent_plots.plot_latent + GPLVM.plot_latent_scatter = gpy_plot.latent_plots.plot_latent_scatter + GPLVM.plot_latent_inducing = gpy_plot.latent_plots.plot_latent_inducing 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_latent_scatter = gpy_plot.latent_plots.plot_latent_scatter + BayesianGPLVM.plot_latent_inducing = gpy_plot.latent_plots.plot_latent_inducing 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_latent_scatter = gpy_plot.latent_plots.plot_latent_scatter + bayesian_gplvm_minibatch.BayesianGPLVMMiniBatch.plot_latent_inducing = gpy_plot.latent_plots.plot_latent_inducing bayesian_gplvm_minibatch.BayesianGPLVMMiniBatch.plot_steepest_gradient_map = gpy_plot.latent_plots.plot_steepest_gradient_map SSGPLVM.plot_latent = gpy_plot.latent_plots.plot_latent - SSGPLVM.plot_prediction_fit = gpy_plot.latent_plots.plot_prediction_fit + SSGPLVM.plot_latent_scatter = gpy_plot.latent_plots.plot_latent_scatter + SSGPLVM.plot_latent_inducing = gpy_plot.latent_plots.plot_latent_inducing SSGPLVM.plot_steepest_gradient_map = gpy_plot.latent_plots.plot_steepest_gradient_map from ..kern import Kern diff --git a/GPy/plotting/abstract_plotting_library.py b/GPy/plotting/abstract_plotting_library.py index dd59ef2e..2bbb8dc4 100644 --- a/GPy/plotting/abstract_plotting_library.py +++ b/GPy/plotting/abstract_plotting_library.py @@ -174,30 +174,45 @@ class AbstractPlottingLibrary(object): """ raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library") - def imshow(self, canvas, X, extent=None, label=None, plot_function=None, vmin=None, vmax=None, **kwargs): + def imshow(self, canvas, X, extent=None, label=None, vmin=None, vmax=None, **kwargs): """ Show the image stored in X on the canvas. - if X is a function, create an imshow controller to stream - the image. There is an imshow controller written for - mmatplotlib, which updates the imshow on changes in axis. - - Just ignore the plot_function, if you do not have the option - to have interactive changes. - The origin of the image show is (0,0), such that X[0,0] gets plotted at [0,0] of the image! the kwargs are plotting library specific kwargs! """ 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): + def imshow_interact(self, canvas, plot_function, extent=None, label=None, vmin=None, vmax=None, **kwargs): + """ + This function is optional! + + Create an imshow controller to stream + the image returned by the plot_function. There is an imshow controller written for + mmatplotlib, which updates the imshow on changes in axis. + + The origin of the image show is (0,0), such that X[0,0] gets plotted at [0,0] of the image! + + the kwargs are plotting library specific kwargs! + """ + 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, **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. + put the text of the annotation inside the cells of the heatmap (centered). + :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 + :return: a list of both the heatmap and annotation plots [heatmap, annotation], or the interactive update object (alone) + """ + raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library") + + def annotation_heatmap_interact(self, canvas, plot_function, extent, label=None, resolution=15, **kwargs): + """ 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 @@ -206,14 +221,14 @@ class AbstractPlottingLibrary(object): 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 + :return: a list of both the heatmap and annotation plots [heatmap, annotation], or the interactive update object (alone) :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 - :return: a list of both the heatmap and annotation plots [heatmap, annotation] """ raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library") diff --git a/GPy/plotting/gpy_plot/latent_plots.py b/GPy/plotting/gpy_plot/latent_plots.py index fd2bba20..88aeda9a 100644 --- a/GPy/plotting/gpy_plot/latent_plots.py +++ b/GPy/plotting/gpy_plot/latent_plots.py @@ -47,85 +47,19 @@ def _wait_for_updates(view, updates): pass -def plot_prediction_fit(self, plot_limits=None, - which_data_rows='all', which_data_ycols='all', - fixed_inputs=None, resolution=None, - plot_raw=False, apply_link=False, visible_dims=None, - predict_kw=None, scatter_kwargs=None, **plot_kwargs): - """ - Plot the fit of the (Bayesian)GPLVM latent space prediction to the outputs. - This scatters two output dimensions against each other and a line - from the prediction in two dimensions between them. - - Give the Y_metadata in the predict_kw if you need it. - - :param which_data_rows: which of the training data to plot (default all) - :type which_data_rows: 'all' or a slice object to slice self.X, self.Y - :param array-like which_data_ycols: which columns of y to plot (array-like or list of ints) - :param fixed_inputs: a list of tuple [(i,v), (i,v)...], specifying that input dimension i should be set to value v. - :type fixed_inputs: a list of tuples - :param int resolution: The resolution of the prediction [defaults are 1D:200, 2D:50] - :param bool plot_raw: plot the latent function (usually denoted f) only? - :param bool apply_link: whether to apply the link function of the GP to the raw prediction. - :param array-like visible_dims: which columns of the input X (!) to plot (array-like or list of ints) - :param dict predict_kw: the keyword arguments for the prediction. If you want to plot a specific kernel give dict(kern=) in here - :param dict sactter_kwargs: kwargs for the scatter plot, specific for the plotting library you are using - :param kwargs plot_kwargs: kwargs for the data plot for the plotting library you are using - """ - canvas, kwargs = pl.get_new_canvas(**plot_kwargs) - plots = _plot_prediction_fit(self, canvas, plot_limits, which_data_rows, which_data_ycols, - fixed_inputs, resolution, plot_raw, - apply_link, visible_dims, - predict_kw, scatter_kwargs, **kwargs) - return pl.show_canvas(canvas, plots) - -def _plot_prediction_fit(self, canvas, plot_limits=None, - which_data_rows='all', which_data_ycols='all', - fixed_inputs=None, resolution=None, - plot_raw=False, apply_link=False, visible_dims=False, - predict_kw=None, scatter_kwargs=None, **plot_kwargs): - - ycols = get_which_data_ycols(self, which_data_ycols) - rows = get_which_data_rows(self, which_data_rows) - - if visible_dims is None: - visible_dims = self.get_most_significant_input_dimensions()[:1] - - X, _, Y, _, free_dims, Xgrid, _, _, _, _, resolution = helper_for_plot_data(self, plot_limits, visible_dims, fixed_inputs, resolution) - - plots = {} - - if len(free_dims)<2: - if len(free_dims)==1: - if scatter_kwargs is None: - scatter_kwargs = {} - update_not_existing_kwargs(scatter_kwargs, pl.defaults.data_y_1d) # @UndefinedVariable - plots['output'] = pl.scatter(canvas, Y[rows, ycols[0]], Y[rows, ycols[1]], - color=X[rows, free_dims[0]], - **scatter_kwargs) - if predict_kw is None: - predict_kw = {} - mu, _, _ = helper_predict_with_model(self, Xgrid, plot_raw, - apply_link, None, - ycols, predict_kw) - update_not_existing_kwargs(plot_kwargs, pl.defaults.data_y_1d_plot) # @UndefinedVariable - plots['output_fit'] = pl.plot(canvas, mu[:, 0], mu[:, 1], **plot_kwargs) - else: - pass #Nothing to plot! - else: - raise NotImplementedError("Cannot plot in more then one dimension.") - return plots - -def _plot_latent_scatter(self, canvas, X, visible_dims, labels, marker, num_samples, projection='2d', **kwargs): +def _plot_latent_scatter(canvas, X, visible_dims, labels, marker, num_samples, projection='2d', **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 = [] + scatters = [] + generate_colors = 'color' not in kwargs for x, y, z, this_label, _, m in scatter_label_generator(labels, X, visible_dims, marker): update_not_existing_kwargs(kwargs, pl.defaults.latent_scatter) - scatters.append(pl.scatter(canvas, x, y, Z=z, marker=m, color=Tango.nextMedium(), label=this_label, **kwargs)) + if generate_colors: + kwargs['color'] = Tango.nextMedium() + if projection == '3d': + scatters.append(pl.scatter(canvas, x, y, Z=z, marker=m, label=this_label, **kwargs)) + else: scatters.append(pl.scatter(canvas, x, y, marker=m, label=this_label, **kwargs)) return scatters def plot_latent_scatter(self, labels=None, @@ -147,43 +81,81 @@ def plot_latent_scatter(self, labels=None, :param str marker: markers to use - cycle if more labels then markers are given :param kwargs: the kwargs for the scatter plots """ - sig_dims = self.get_most_significant_input_dimensions(which_indices) - input_1, input_2, input_3 = [i for i in sig_dims if i is not None] - + input_1, input_2, input_3 = sig_dims = self.get_most_significant_input_dimensions(which_indices) + canvas, kwargs = pl.get_new_canvas(projection=projection, **kwargs) X, _, _ = get_x_y_var(self) - scatters = _plot_latent_scatter(self, canvas, X, sig_dims, labels, marker, num_samples, projection=projection, **kwargs) + if labels is None: + labels = np.ones(self.num_data) + legend = False + else: + legend = find_best_layout_for_subplots(len(np.unique(labels))) + scatters = _plot_latent_scatter(canvas, X, sig_dims, labels, marker, num_samples, projection=projection, **kwargs) if projection == '3d': - return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend and (labels is not None), + return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend, xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, zlabel='latent dimension %i' % input_3) else: - return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend and (labels is not None), + return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend, + xlabel='latent dimension %i' % input_1, + ylabel='latent dimension %i' % input_2, + #zlabel='latent dimension %i' % input_3 + ) +def plot_latent_inducing(self, + which_indices=None, + legend=False, + plot_limits=None, + marker='^', + num_samples=1000, + projection='2d', + **kwargs): + """ + Plot a scatter plot of the inducing inputs. + + :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, input_3 = sig_dims = self.get_most_significant_input_dimensions(which_indices) + + if 'color' not in kwargs: + kwargs['color'] = 'white' + canvas, kwargs = pl.get_new_canvas(projection=projection, **kwargs) + X, _, _ = get_x_y_var(self) + labels = np.ones(self.num_data) + scatters = _plot_latent_scatter(canvas, X, sig_dims, labels, marker, num_samples, projection=projection, **kwargs) + if projection == '3d': + return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend, + xlabel='latent dimension %i' % input_1, + ylabel='latent dimension %i' % input_2, + zlabel='latent dimension %i' % input_3) + else: + return pl.show_canvas(canvas, dict(scatter=scatters), legend=legend, xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2, #zlabel='latent dimension %i' % input_3 ) - -def _plot_magnification(self, canvas, input_1, input_2, Xgrid, +def _plot_magnification(self, canvas, which_indices, 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 + Xtest_full[:, which_indices] = x mf = self.predict_magnification(Xtest_full, kern=kern, mean=mean, covariance=covariance) return mf.reshape(resolution, resolution).T 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], xmax[0], xmin[1], xmax[1]), - None, plot_function, resolution, - vmin=Y.min(), vmax=Y.max(), - **imshow_kwargs) - return view + try: + return pl.imshow_interact(canvas, plot_function, (xmin[0], xmax[0], xmin[1], xmax[1]), resolution=resolution, **imshow_kwargs) + except NotImplementedError: + return pl.imshow(canvas, plot_function(Xgrid), (xmin[0], xmax[0], xmin[1], xmax[1]), **imshow_kwargs) def plot_magnification(self, labels=None, which_indices=None, resolution=60, marker='<>^vsd', legend=True, @@ -211,13 +183,16 @@ def plot_magnification(self, labels=None, which_indices=None, :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) + input_1, input_2 = which_indices = self.get_most_significant_input_dimensions(which_indices)[:2] canvas, imshow_kwargs = pl.get_new_canvas(**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, labels, marker, num_samples, **scatter_kwargs or {}) - view = _plot_magnification(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, mean, covariance, kern, **imshow_kwargs) - if (legend is True) and (labels is not None): + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, which_indices, None, resolution) + if (labels is not None): legend = find_best_layout_for_subplots(len(np.unique(labels)))[1] + else: + labels = np.ones(self.num_data) + legend = False + scatters = _plot_latent_scatter(canvas, X, which_indices, labels, marker, num_samples, projection='2d', **scatter_kwargs or {}) + view = _plot_magnification(self, canvas, which_indices[:2], Xgrid, xmin, xmax, resolution, mean, covariance, kern, **imshow_kwargs) plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1]), @@ -228,24 +203,21 @@ def plot_magnification(self, labels=None, which_indices=None, -def _plot_latent(self, canvas, input_1, input_2, Xgrid, +def _plot_latent(self, canvas, which_indices, Xgrid, xmin, xmax, resolution, 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 + Xtest_full[:, which_indices] = x mf = np.log(self.predict(Xtest_full, kern=kern)[1]) return mf.reshape(resolution, resolution).T imshow_kwargs = update_not_existing_kwargs(imshow_kwargs, pl.defaults.latent) - Y = plot_function(Xgrid[:, [input_1, input_2]]).reshape(resolution, resolution).T - view = pl.imshow(canvas, Y, - (xmin[0], xmax[0], xmin[1], xmax[1]), - None, plot_function, resolution, - vmin=Y.min(), vmax=Y.max(), - **imshow_kwargs) - return view + try: + return pl.imshow_interact(canvas, plot_function, (xmin[0], xmax[0], xmin[1], xmax[1]), resolution=resolution, **imshow_kwargs) + except NotImplementedError: + return pl.imshow(canvas, plot_function(Xgrid), (xmin[0], xmax[0], xmin[1], xmax[1]), **imshow_kwargs) def plot_latent(self, labels=None, which_indices=None, resolution=60, legend=True, @@ -272,13 +244,16 @@ def plot_latent(self, labels=None, which_indices=None, :param imshow_kwargs: the kwargs for the imshow (magnification factor) :param scatter_kwargs: the kwargs for the scatter plots """ - input_1, input_2 = self.get_most_significant_input_dimensions(which_indices) + input_1, input_2 = which_indices = self.get_most_significant_input_dimensions(which_indices)[:2] canvas, imshow_kwargs = pl.get_new_canvas(**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, labels, marker, num_samples, **scatter_kwargs or {}) - view = _plot_latent(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, kern, **imshow_kwargs) - if (legend is True) and (labels is not None): + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, which_indices, None, resolution) + if (labels is not None): legend = find_best_layout_for_subplots(len(np.unique(labels)))[1] + else: + labels = np.ones(self.num_data) + legend = False + scatters = _plot_latent_scatter(canvas, X, which_indices, labels, marker, num_samples, projection='2d', **scatter_kwargs or {}) + view = _plot_latent(self, canvas, which_indices, Xgrid, xmin, xmax, resolution, kern, **imshow_kwargs) plots = pl.show_canvas(canvas, dict(scatter=scatters, imshow=view), legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1]), @@ -286,25 +261,25 @@ def plot_latent(self, labels=None, which_indices=None, _wait_for_updates(view, updates) return plots -def _plot_steepest_gradient_map(self, canvas, input_1, input_2, Xgrid, +def _plot_steepest_gradient_map(self, canvas, which_indices, 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) + Xgrid[:, which_indices] = x + dmu_dX = np.sqrt(((self.predictive_gradients(Xgrid, kern=kern)[0])**2).sum(1)) + #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, np.array(output_labels)[argmax].reshape(resolution, resolution) - Y, annotation = plot_function(Xgrid[:, [input_1, input_2]]) + return dmu_dX.max(1).reshape(resolution, resolution).T, np.array(output_labels)[argmax].reshape(resolution, resolution).T annotation_kwargs = update_not_existing_kwargs(annotation_kwargs or {}, pl.defaults.annotation) imshow_kwargs = update_not_existing_kwargs(imshow_kwargs or {}, pl.defaults.gradient) - imshow, annotation = pl.annotation_heatmap(canvas, Y, annotation, - (xmin[0], xmax[0], xmin[1], xmax[1]), - None, plot_function, resolution, - imshow_kwargs=imshow_kwargs, **annotation_kwargs) - return dict(heatmap=imshow, annotation=annotation) + try: + return dict(annotation=pl.annotation_heatmap_interact(canvas, plot_function, (xmin[0], xmax[0], xmin[1], xmax[1]), resolution=resolution, imshow_kwargs=imshow_kwargs, **annotation_kwargs)) + except NotImplementedError: + imshow, annotation = pl.annotation_heatmap(canvas, *plot_function(Xgrid), extent=(xmin[0], xmax[0], xmin[1], xmax[1]), imshow_kwargs=imshow_kwargs, **annotation_kwargs) + return dict(heatmap=imshow, annotation=annotation) def plot_steepest_gradient_map(self, output_labels=None, data_labels=None, which_indices=None, resolution=15, legend=True, @@ -333,13 +308,16 @@ def plot_steepest_gradient_map(self, output_labels=None, data_labels=None, which :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) + input_1, input_2 = which_indices = self.get_most_significant_input_dimensions(which_indices)[:2] canvas, imshow_kwargs = pl.get_new_canvas(**imshow_kwargs) - X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, (input_1, input_2), None, resolution) - plots = dict(scatter=_plot_latent_scatter(self, canvas, X, input_1, input_2, data_labels, marker, num_samples, **scatter_kwargs or {})) - plots.update(_plot_steepest_gradient_map(self, canvas, input_1, input_2, Xgrid, xmin, xmax, resolution, output_labels, kern, annotation_kwargs=annotation_kwargs, **imshow_kwargs)) - if (legend is True) and (data_labels is not None): + X, _, _, _, _, Xgrid, _, _, xmin, xmax, resolution = helper_for_plot_data(self, plot_limits, which_indices, None, resolution) + if (data_labels is not None): legend = find_best_layout_for_subplots(len(np.unique(data_labels)))[1] + else: + data_labels = np.ones(self.num_data) + legend = False + plots = dict(scatter=_plot_latent_scatter(canvas, X, which_indices, data_labels, marker, num_samples, **scatter_kwargs or {})) + plots.update(_plot_steepest_gradient_map(self, canvas, which_indices, Xgrid, xmin, xmax, resolution, output_labels, kern, annotation_kwargs=annotation_kwargs, **imshow_kwargs)) pl.show_canvas(canvas, plots, legend=legend, xlim=(xmin[0], xmax[0]), ylim=(xmin[1], xmax[1]), xlabel='latent dimension %i' % input_1, ylabel='latent dimension %i' % input_2) diff --git a/GPy/plotting/gpy_plot/plot_util.py b/GPy/plotting/gpy_plot/plot_util.py index f99ee5e6..031d5266 100644 --- a/GPy/plotting/gpy_plot/plot_util.py +++ b/GPy/plotting/gpy_plot/plot_util.py @@ -100,6 +100,8 @@ def helper_for_plot_data(self, plot_limits, visible_dims, fixed_inputs, resoluti """ Figure out the data, free_dims and create an Xgrid for the prediction. + + This is only implemented for two dimensions for now! """ X, Xvar, Y = get_x_y_var(self) @@ -107,13 +109,13 @@ def helper_for_plot_data(self, plot_limits, visible_dims, fixed_inputs, resoluti if fixed_inputs is None: fixed_inputs = [] fixed_dims = get_fixed_dims(self, fixed_inputs) - free_dims = get_free_dims(self, visible_dims, fixed_dims) + free_dims = get_free_dims(self, visible_dims, fixed_dims)[:2] if len(free_dims) == 1: #define the frame on which to plot resolution = resolution or 200 Xnew, xmin, xmax = x_frame1D(X[:,free_dims], plot_limits=plot_limits, resolution=resolution) - Xgrid = np.empty((Xnew.shape[0],self.input_dim)) + Xgrid = np.zeros((Xnew.shape[0],self.input_dim)) Xgrid[:,free_dims] = Xnew for i,v in fixed_inputs: Xgrid[:,i] = v @@ -123,10 +125,12 @@ def helper_for_plot_data(self, plot_limits, visible_dims, fixed_inputs, resoluti #define the frame for plotting on resolution = resolution or 50 Xnew, x, y, xmin, xmax = x_frame2D(X[:,free_dims], plot_limits, resolution) - Xgrid = np.empty((Xnew.shape[0],self.input_dim)) + Xgrid = np.zeros((Xnew.shape[0], self.input_dim)) Xgrid[:,free_dims] = Xnew for i,v in fixed_inputs: - Xgrid[:,i] = v + Xgrid[:,i] = v + else: + raise TypeError("calculated free_dims {} from visible_dims {} and fixed_dims {} is neither 1D nor 2D".format(free_dims, visible_dims, fixed_dims)) return X, Xvar, Y, fixed_dims, free_dims, Xgrid, x, y, xmin, xmax, resolution def scatter_label_generator(labels, X, visible_dims, marker=None): @@ -140,7 +144,16 @@ def scatter_label_generator(labels, X, visible_dims, marker=None): else: m = None - input_1, input_2, input_3 = visible_dims + try: + input_1, input_2, input_3 = visible_dims + except: + try: + # tuple or int? + input_1, input_2 = visible_dims + input_3 = None + except: + input_1 = visible_dims + input_2 = input_3 = None for ul in ulabels: if type(ul) is np.string_: @@ -280,10 +293,11 @@ def get_free_dims(model, visible_dims, fixed_dims): """ if visible_dims is None: visible_dims = np.arange(model.input_dim) - visible_dims = np.asanyarray(visible_dims) + dims = np.asanyarray(visible_dims) if fixed_dims is not None: - return np.setdiff1d(visible_dims, fixed_dims) - return visible_dims + dims = np.setdiff1d(dims, fixed_dims) + return np.asanyarray([dim for dim in dims if dim is not None]) + def get_fixed_dims(model, fixed_inputs): """ diff --git a/GPy/plotting/matplot_dep/controllers/imshow_controller.py b/GPy/plotting/matplot_dep/controllers/imshow_controller.py index 63ac743b..ceeda262 100644 --- a/GPy/plotting/matplot_dep/controllers/imshow_controller.py +++ b/GPy/plotting/matplot_dep/controllers/imshow_controller.py @@ -57,18 +57,18 @@ class ImAnnotateController(ImshowController): 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', **kwargs)) + xlin = numpy.linspace(xmin-xoffset, xmax+xoffset, self.resolution, endpoint=False) + ylin = numpy.linspace(ymin-yoffset, ymax+yoffset, self.resolution, endpoint=False) + for [i, x], [j, y] in itertools.product(enumerate(xlin), enumerate(ylin)): + view.append(ax.text(x, y, "{}".format(X[1][j, i]), ha='center', va='center', **kwargs)) return view def update_view(self, view, X, xmin, xmax, ymin, ymax): super(ImAnnotateController, self).update_view(view[0], X[0], xmin, xmax, ymin, ymax) 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]], text in itertools.izip(itertools.product(enumerate(xlin), enumerate(ylin[::-1])), view[1:]): + xlin = numpy.linspace(xmin-xoffset, xmax+xoffset, self.resolution, endpoint=False) + ylin = numpy.linspace(ymin-yoffset, ymax+yoffset, self.resolution, endpoint=False) + for [[i, x], [j, y]], text in itertools.izip(itertools.product(enumerate(xlin), enumerate(ylin)), view[1:]): text.set_x(x + xoffset) text.set_y(y + yoffset) text.set_text("{}".format(X[1][j, i])) diff --git a/GPy/plotting/matplot_dep/plot_definitions.py b/GPy/plotting/matplot_dep/plot_definitions.py index 129bdf66..3744d86b 100644 --- a/GPy/plotting/matplot_dep/plot_definitions.py +++ b/GPy/plotting/matplot_dep/plot_definitions.py @@ -69,11 +69,14 @@ class MatplotlibPlots(AbstractPlottingLibrary): if zlabel is not None: ax.set_zlabel(zlabel) if title is not None: ax.set_title(title) fontdict=dict(family='sans-serif', weight='light', size=9) - if legend >= 1: + if legend is True: + ax.legend(*ax.get_legend_handles_labels()) + elif legend >= 1: #ax.legend(prop=fontdict) legend_ontop(ax, ncol=legend, fontdict=fontdict) if zlim is not None: ax.set_zlim(zlim) + #ax.figure.show() ax.figure.canvas.draw() return plots @@ -121,32 +124,44 @@ class MatplotlibPlots(AbstractPlottingLibrary): return ax.errorbar(X, Y, Z, yerr=error, ecolor=color, label=label, **kwargs) return ax.errorbar(X, Y, yerr=error, ecolor=color, label=label, **kwargs) - def imshow(self, ax, X, extent=None, label=None, plot_function=None, resolution=None, vmin=None, vmax=None, **imshow_kwargs): + def imshow(self, ax, X, extent=None, label=None, vmin=None, vmax=None, **imshow_kwargs): if 'origin' not in imshow_kwargs: imshow_kwargs['origin'] = 'lower' - if plot_function is not None: - return ImshowController(ax, plot_function, extent, resolution=resolution, vmin=vmin, vmax=vmax, **imshow_kwargs) + #xmin, xmax, ymin, ymax = extent + #xoffset, yoffset = (xmax - xmin) / (2. * X.shape[0]), (ymax - ymin) / (2. * X.shape[1]) + #xmin, xmax, ymin, ymax = extent = xmin-xoffset, xmax+xoffset, ymin-yoffset, ymax+yoffset return ax.imshow(X, label=label, extent=extent, vmin=vmin, vmax=vmax, **imshow_kwargs) - - def annotation_heatmap(self, ax, X, annotation, extent, label=None, plot_function=None, resolution=None, imshow_kwargs=None, **annotation_kwargs): + + def imshow_interact(self, ax, plot_function, extent=None, label=None, resolution=None, vmin=None, vmax=None, **imshow_kwargs): + if 'origin' not in imshow_kwargs: + imshow_kwargs['origin'] = 'lower' + return ImshowController(ax, plot_function, extent, resolution=resolution, vmin=vmin, vmax=vmax, **imshow_kwargs) + + def annotation_heatmap(self, ax, X, annotation, extent=None, label=None, imshow_kwargs=None, **annotation_kwargs): imshow_kwargs = imshow_kwargs or {} if 'origin' not in imshow_kwargs: imshow_kwargs['origin'] = 'lower' - 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' - imshow = self.imshow(ax, X, extent, label, None, resolution, **imshow_kwargs) + imshow = self.imshow(ax, X, extent, label, **imshow_kwargs) + if extent is None: + extent = (0, X.shape[0], 0, X.shape[1]) xmin, xmax, ymin, ymax = extent - xoffset, yoffset = (xmax - xmin) / (2. * resolution), (ymax - ymin) / (2. * resolution) - xlin = np.linspace(xmin, xmax, resolution, endpoint=False) - ylin = np.linspace(ymin, ymax, resolution, endpoint=False) + xoffset, yoffset = (xmax - xmin) / (2. * X.shape[0]), (ymax - ymin) / (2. * X.shape[1]) + xmin, xmax, ymin, ymax = extent = xmin+xoffset, xmax-xoffset, ymin+yoffset, ymax-yoffset + xlin = np.linspace(xmin, xmax, X.shape[0], endpoint=False) + ylin = np.linspace(ymin, ymax, X.shape[1], 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)) + for [i, x], [j, y] in itertools.product(enumerate(xlin), enumerate(ylin)): + annotations.append(ax.text(x, y, "{}".format(annotation[j, i]), **annotation_kwargs)) return imshow, annotations + + def annotation_heatmap_interact(self, ax, plot_function, extent, label=None, resolution=15, imshow_kwargs=None, **annotation_kwargs): + if 'origin' not in imshow_kwargs: + imshow_kwargs['origin'] = 'lower' + return ImAnnotateController(ax, plot_function, extent, resolution=resolution, imshow_kwargs=imshow_kwargs or {}, **annotation_kwargs) 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 7121e792..2fb7cf70 100644 --- a/GPy/testing/plotting_tests.py +++ b/GPy/testing/plotting_tests.py @@ -145,11 +145,12 @@ def test_classification(): Y = f+np.random.normal(0, .1, f.shape) m = GPy.models.GPClassification(X, Y>Y.mean()) m.optimize() - m.plot() - m.plot(plot_raw=True) - m.plot(plot_raw=False, apply_link=True) + fig, ax = plt.subplots() + m.plot(plot_raw=False, apply_link=False, ax=ax) + fig, ax = plt.subplots() + m.plot(plot_raw=True, apply_link=False, ax=ax) m.plot(plot_raw=True, apply_link=True) - for do_test in _image_comparison(baseline_images=['gp_class_{}'.format(sub) for sub in ["", "raw", 'link', 'raw_link']], extensions=extensions): + for do_test in _image_comparison(baseline_images=['gp_class_{}'.format(sub) for sub in ["likelihood", "raw", 'raw_link']], extensions=extensions): yield (do_test, ) @@ -160,17 +161,17 @@ def test_sparse_classification(): Y = f+np.random.normal(0, .1, f.shape) m = GPy.models.SparseGPClassification(X, Y>Y.mean()) m.optimize() - m.plot() - m.plot(plot_raw=True) - m.plot(plot_raw=False, apply_link=True) + m.plot(plot_raw=False, apply_link=False) + m.plot(plot_raw=True, apply_link=False) m.plot(plot_raw=True, apply_link=True) - for do_test in _image_comparison(baseline_images=['sparse_gp_class_{}'.format(sub) for sub in ["", "raw", 'link', 'raw_link']], extensions=extensions): + for do_test in _image_comparison(baseline_images=['sparse_gp_class_{}'.format(sub) for sub in ["likelihood", "raw", 'raw_link']], extensions=extensions): yield (do_test, ) def test_gplvm(): from ..examples.dimensionality_reduction import _simulate_matern from ..kern import RBF from ..models import GPLVM + np.random.seed(11111) Q = 3 _, _, Ylist = _simulate_matern(5, 1, 1, 100, num_inducing=5, plot_sim=False) Y = Ylist[0] @@ -180,18 +181,18 @@ def test_gplvm(): m.likelihood.variance = .1 m.optimize(messages=0) labels = np.random.multinomial(1, np.random.dirichlet([.3333333, .3333333, .3333333]), size=(m.Y.shape[0])).nonzero()[1] - m.plot_prediction_fit(which_data_ycols=(0,1)) # ignore this test, as plotting is not consistent!! - plt.close('all') m.plot_latent() + m.plot_latent_scatter(projection='3d', labels=labels) m.plot_magnification(labels=labels) m.plot_steepest_gradient_map(resolution=7) - for do_test in _image_comparison(baseline_images=['gplvm_{}'.format(sub) for sub in ["latent", "magnification", 'gradient']], extensions=extensions): + for do_test in _image_comparison(baseline_images=['gplvm_{}'.format(sub) for sub in ["latent", "latent_3d", "magnification", 'gradient']], extensions=extensions): yield (do_test, ) def test_bayesian_gplvm(): from ..examples.dimensionality_reduction import _simulate_matern from ..kern import RBF from ..models import BayesianGPLVM + np.random.seed(11111) Q = 3 _, _, Ylist = _simulate_matern(5, 1, 1, 100, num_inducing=5, plot_sim=False) Y = Ylist[0] @@ -201,12 +202,12 @@ def test_bayesian_gplvm(): m.likelihood.variance = .1 m.optimize(messages=0) labels = np.random.multinomial(1, np.random.dirichlet([.3333333, .3333333, .3333333]), size=(m.Y.shape[0])).nonzero()[1] - m.plot_prediction_fit(which_data_ycols=(0,1)) # ignore this test, as plotting is not consistent!! - plt.close('all') - m.plot_latent() + m.plot_latent_inducing(projection='2d') + m.plot_latent_inducing(projection='3d') + m.plot_latent_scatter(projection='3d') m.plot_magnification(labels=labels) m.plot_steepest_gradient_map(resolution=7) - for do_test in _image_comparison(baseline_images=['bayesian_gplvm_{}'.format(sub) for sub in ["latent", "magnification", 'gradient']], extensions=extensions): + for do_test in _image_comparison(baseline_images=['bayesian_gplvm_{}'.format(sub) for sub in ["inducing", "inducing_3d", "latent_3d", "magnification", 'gradient']], extensions=extensions): yield (do_test, ) if __name__ == '__main__': diff --git a/GPy/testing/plotting_tests/baseline/bayesian_gplvm_gradient.png b/GPy/testing/plotting_tests/baseline/bayesian_gplvm_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..8e2d0e38c521bacd9e87e55ce01cb431c3a1a9ea GIT binary patch literal 18045 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 Mr>mdKI;Vst0J6O3-2eap literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing.png b/GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing.png new file mode 100644 index 0000000000000000000000000000000000000000..28a2cb17a8744263f338c67fc3592fb068904a90 GIT binary patch literal 6839 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 literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing_3d.png b/GPy/testing/plotting_tests/baseline/bayesian_gplvm_inducing_3d.png new file mode 100644 index 0000000000000000000000000000000000000000..503c0503ab515f629a946c5bdaae0fd97c95594c GIT binary patch literal 11266 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 V=}F#3VkGQX$_g5ws#g}D{tIfFURD4A literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/bayesian_gplvm_magnification.png b/GPy/testing/plotting_tests/baseline/bayesian_gplvm_magnification.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7f121ed447875d308e1a1b9b104e97f67b9df4 GIT binary patch literal 34596 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%0D;z#W(UfjIIfjVq^r{~_BsH*fL6Ez2#gtJ~Qr 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 literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/gplvm_latent.png b/GPy/testing/plotting_tests/baseline/gplvm_latent.png new file mode 100644 index 0000000000000000000000000000000000000000..634c2ba8e619081a6fdafcab29df9b9bca64910d GIT binary patch literal 29221 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

CY6HEzy;t2**b`FmSI-%T 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 literal 0 HcmV?d00001 diff --git a/GPy/testing/plotting_tests/baseline/gplvm_magnification.png b/GPy/testing/plotting_tests/baseline/gplvm_magnification.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9144be24fda4c37dbd39025935d3f17088f8bd GIT binary patch literal 42299 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