def add_data(self, data): """ Add a new dataset to the viewer """ # overloaded from DataViewer # need to delay callbacks, otherwise might # try to set combo boxes to nonexisting items with delay_callback(self.client, 'display_data', 'display_attribute'): # If there is not already any image data set, we can't add 1-D # datasets (tables/catalogs) to the image widget yet. if data.data.ndim == 1 and self.client.display_data is None: QtWidgets.QMessageBox.information( self.window(), "Note", "Cannot create image viewer from a 1-D " "dataset. You will need to first " "create an image viewer using data " "with 2 or more dimensions, after " "which you will be able to overlay 1-D " "data as a scatter plot.", buttons=QtWidgets.QMessageBox.Ok) return r = self.client.add_layer(data) if r is not None and self.client.display_data is not None: self.add_data_to_combo(data) if self.client.can_image_data(data): self.client.display_data = data self.set_attribute_combo(self.client.display_data) return r is not None
def add_data(self, data): """ Add a new dataset to the viewer """ # overloaded from DataViewer # need to delay callbacks, otherwise might # try to set combo boxes to nonexisting items with delay_callback(self.client, 'display_data', 'display_attribute'): # If there is not already any image data set, we can't add 1-D # datasets (tables/catalogs) to the image widget yet. if data.data.ndim == 1 and self.client.display_data is None: QtWidgets.QMessageBox.information(self.window(), "Note", "Cannot create image viewer from a 1-D " "dataset. You will need to first " "create an image viewer using data " "with 2 or more dimensions, after " "which you will be able to overlay 1-D " "data as a scatter plot.", buttons=QtWidgets.QMessageBox.Ok) return r = self.client.add_layer(data) if r is not None and self.client.display_data is not None: self.add_data_to_combo(data) if self.client.can_image_data(data): self.client.display_data = data self.set_attribute_combo(self.client.display_data) return r is not None
def restore_layers(self, rec, context): from glue.core.callback_property import delay_callback with delay_callback(self.client, 'height_attr', 'parent_attr', 'order_attr'): self.client.restore_layers(rec, context) self._update_combos()
def restore_layers(self, rec, context): with delay_callback(self.client, 'display_data', 'display_attribute'): self.client.restore_layers(rec, context) for artist in self.layers: self.add_data_to_combo(artist.layer.data) self.set_attribute_combo(self.client.display_data) self._sync_data_combo_labels()
def _pull_properties(self): xlim = self.axes.get_xlim() ylim = self.axes.get_ylim() xsc = self.axes.get_xscale() ysc = self.axes.get_yscale() xflip = (xlim[1] < xlim[0]) yflip = (ylim[1] < ylim[0]) with delay_callback(self, 'xmin', 'xmax', 'xflip', 'xlog'): self.xmin = min(xlim) self.xmax = max(xlim) self.xflip = xflip self.xlog = (xsc == 'log') with delay_callback(self, 'ymin', 'ymax', 'yflip', 'ylog'): self.ymin = min(ylim) self.ymax = max(ylim) self.yflip = yflip self.ylog = (ysc == 'log')
def _default_attributes(self): assert self.display_data is not None fallback = self.display_data.components[0] with delay_callback(self, 'height_attr', 'parent_attr', 'order_attr'): if self.height_attr is None: comp = self.display_data.find_component_id('height') or fallback self.height_attr = comp if self.parent_attr is None: comp = self.display_data.find_component_id('parent') or fallback self.parent_attr = comp if self.order_attr is None: self.order_attr = self.height_attr
def _default_attributes(self): assert self.display_data is not None fallback = self.display_data.components[0] with delay_callback(self, 'height_attr', 'parent_attr', 'order_attr'): if self.height_attr is None: comp = self.display_data.find_component_id( 'height') or fallback self.height_attr = comp if self.parent_attr is None: comp = self.display_data.find_component_id( 'parent') or fallback self.parent_attr = comp if self.order_attr is None: self.order_attr = self.height_attr