Changeset 8834:5b80c61442aa in orange


Ignore:
Timestamp:
08/29/11 18:10:44 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
fee6c39fc1b8680f7143f76a0e381dd3bb6f40f8
Message:

Scatterplot now obeys valid_data, skips invalid examples

Location:
orange/OrangeWidgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Visualize Qt/OWScatterPlot3D.py

    r8828 r8834  
    135135            data_translation[2] = 1. 
    136136 
    137         # TODO: valid_data! 
    138         #validData = self.getValidList(attrIndices)      # get examples that have valid data for each used attribute 
    139  
    140137        self.clear() 
     138 
     139        attr_indices = [x_index, y_index, z_index] 
     140        if color_index > -1: 
     141            attr_indices.append(color_index) 
     142        if size_index > -1: 
     143            attr_indices.append(size_index) 
     144        if symbol_index > -1: 
     145            attr_indices.append(symbol_index) 
     146        if label_index > -1: 
     147            attr_indices.append(label_index) 
     148 
     149        valid_data = self.getValidList(attr_indices) 
     150        self.set_valid_data(valid_data) 
     151 
    141152        self.set_shown_attributes(x_index, y_index, z_index, 
    142153            color_index, symbol_index, size_index, label_index, 
     
    145156            data_scale, data_translation) 
    146157 
     158        ## Legend 
    147159        def_color = QColor(150, 150, 150) 
    148160        def_symbol = 0 
     
    167179                self.legend().add_item(color_attr, values[ind], OWPoint(def_symbol, def_color, 6 + round(ind * 5 / len(values)))) 
    168180 
    169         # Draw color scale for continuous coloring attribute 
    170181        if color_index != -1 and self.data_domain[color_attr].varType == Continuous: 
    171182            self.legend().add_color_gradient(color_attr, [("%%.%df" % self.data_domain[color_attr].numberOfDecimals % v) for v in self.attr_values[color_attr]]) 
     
    177188        self.legend().update_items() 
    178189 
     190        ## Axes 
    179191        self.set_axis_title(Axis.X, x_attr) 
    180192        self.set_axis_title(Axis.Y, y_attr) 
     
    468480    def mouseover_callback(self, index): 
    469481        if self.tooltip_kind == TooltipKind.VISIBLE: 
    470             self.plot.show_tooltip(self.get_example_tooltip(self.data[index], self.shown_attr_indices)) 
     482            self.plot.show_tooltip(self.get_example_tooltip(self.data[index], self.shown_attrs)) 
    471483        elif self.tooltip_kind == TooltipKind.ALL: 
    472484            self.plot.show_tooltip(self.get_example_tooltip(self.data[index])) 
     
    568580 
    569581        self.symbol_attr = self.size_attr = self.label_attr = '' 
    570         self.shown_attr_indices = [self.x_attr, self.y_attr, self.z_attr, self.color_attr] 
     582        self.shown_attrs = [self.x_attr, self.y_attr, self.z_attr, self.color_attr] 
    571583 
    572584    def set_subset_data(self, data=None): 
     
    605617            return 
    606618        selected = self.plot.get_selected_indices() 
    607         if len(selected) != len(self.data): 
     619        if selected == None or len(selected) != len(self.data): 
    608620            return 
    609621        unselected = numpy.logical_not(selected) 
  • orange/OrangeWidgets/plot/owplot3d.py

    r8822 r8834  
    908908                                     self.num_examples, 
    909909                                     self.example_size) 
     910 
     911    def set_valid_data(self, valid_data): 
     912        self.valid_data = numpy.array(valid_data, dtype=bool) # QList<bool> is being a PITA 
     913        orangeqt.Plot3D.set_valid_data(self, long(self.valid_data.ctypes.data)) 
    910914 
    911915    # TODO: to scatterplot 
Note: See TracChangeset for help on using the changeset viewer.