Changeset 8852:9f2df4ff2433 in orange


Ignore:
Timestamp:
08/30/11 15:23:17 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
277d1e2a93ae14883471182ed1c51f0b2333a32d
Message:

Added getSelectionsAsExampleTables to sphereviz and linproj3d, but is disabled for now, because it crashes (the same bug as with scatterplot3d)

Location:
orange/OrangeWidgets/Visualize Qt
Files:
2 edited

Legend:

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

    r8843 r8852  
    406406 
    407407    def updateGraph(self, attrList=None, setAnchors=0, insideColors=None, **args): 
    408         print('updateGraph') 
     408        pass 
    409409 
    410410    def setCanvasColor(self, c): 
     
    412412 
    413413    def getSelectionsAsExampleTables(self, attrList, useAnchorData=1, addProjectedPositions=0): 
    414         return (None, None) 
     414        return (None, None) # TODO: this is disabled for now 
     415 
     416        if not self.have_data: 
     417            return (None, None) 
     418 
     419        selected = self.get_selected_indices() 
     420 
     421        if addProjectedPositions == 0 and not numpy.any(selected): 
     422            return (None, self.raw_data) 
     423        if (useAnchorData and len(self.anchor_data) < 3) or len(attrList) < 3: 
     424            return (None, None) 
     425 
     426        x_attr = orange.FloatVariable("X Positions") 
     427        y_attr = orange.FloatVariable("Y Positions") 
     428        z_attr = orange.FloatVariable("Z Positions") 
     429 
     430        if addProjectedPositions == 1: 
     431            domain = orange.Domain([x_attr, y_attr, z_attr] + [v for v in self.data_domain.variables]) 
     432        elif addProjectedPositions == 2: 
     433            domain = orange.Domain(self.data_domain) 
     434            domain.addmeta(orange.newmetaid(), x_attr) 
     435            domain.addmeta(orange.newmetaid(), y_attr) 
     436            domain.addmeta(orange.newmetaid(), z_attr) 
     437        else: 
     438            domain = orange.Domain(self.data_domain) 
     439 
     440        domain.addmetas(self.data_domain.getmetas()) 
     441 
     442        if useAnchorData: 
     443            indices = [self.attribute_name_index[val[3]] for val in self.anchor_data] 
     444        else: 
     445            indices = [self.attribute_name_index[label] for label in attrList] 
     446        valid_data = self.getValidList(indices) 
     447        if len(valid_data) == 0: 
     448            return (None, None) 
     449 
     450        array = self.create_projection_as_numeric_array(attrList, scaleFactor=self.scaleFactor, useAnchorData=useAnchorData, removeMissingData=0) 
     451        if array == None: 
     452            return (None, None) 
     453 
     454        unselected = numpy.logical_not(selected) 
     455        selected_indices, unselected_indices = list(selected), list(unselected) 
     456 
     457        if addProjectedPositions: 
     458            selected = orange.ExampleTable(domain, self.raw_data.selectref(selected_indices)) 
     459            unselected = orange.ExampleTable(domain, self.raw_data.selectref(unselected_indices)) 
     460            selected_index = 0 
     461            unselected_index = 0 
     462            for i in range(len(selected_indices)): 
     463                if selected_indices[i]: 
     464                    selected[selected_index][x_attr] = array[i][0] 
     465                    selected[selected_index][y_attr] = array[i][1] 
     466                    selected[selected_index][z_attr] = array[i][2] 
     467                    selected_index += 1 
     468                else: 
     469                    unselected[unselected_index][x_attr] = array[i][0] 
     470                    unselected[unselected_index][y_attr] = array[i][1] 
     471                    unselected[unselected_index][z_attr] = array[i][2] 
     472                    unselIndex += 1 
     473        else: 
     474            selected = self.raw_data.selectref(selected_indices) 
     475            unselected = self.raw_data.selectref(unselected_indices) 
     476 
     477        if len(selected) == 0: 
     478            selected = None 
     479        if len(unselected) == 0: 
     480            unselected = None 
     481        return (selected, unselected) 
    415482 
    416483    def removeAllSelections(self): 
     
    431498 
    432499    def _update_arrow_values(self, index): 
     500        if not self.have_data: 
     501            return 
     502 
    433503        if self.tooltipKind == 1: 
    434504            shown_attrs = [anchor[3] for anchor in self.anchor_data] 
     
    495565 
    496566    def mousePressEvent(self, event): 
     567        if not self.have_data: 
     568            return 
     569 
    497570        # Filter events (no panning or scaling) 
    498571        if event.buttons() & Qt.LeftButton or\ 
     
    502575 
    503576    def mouseMoveEvent(self, event): 
     577        if not self.have_data: 
     578            return 
     579 
    504580        pos = event.pos() 
    505581 
     
    514590 
    515591        OWPlot3D.mouseMoveEvent(self, event) 
     592 
     593    def mouseReleaseEvent(self, event): 
     594        if not self.have_data: 
     595            return 
     596 
     597        OWPlot3D.mouseReleaseEvent(self, event) 
  • orange/OrangeWidgets/Visualize Qt/OWScatterPlot3D.py

    r8847 r8852  
    276276class OWScatterPlot3D(OWWidget): 
    277277    settingsList = ['plot.show_legend', 'plot.symbol_size', 'plot.show_x_axis_title', 'plot.show_y_axis_title', 
    278                     'plot.show_z_axis_title', 'plot.show_legend', 'plot.use_2d_symbols', 
     278                    'plot.show_z_axis_title', 'plot.show_legend', 'plot.use_2d_symbols', 'plot.symbol_scale', 
    279279                    'plot.alpha_value', 'plot.show_grid', 'plot.pitch', 'plot.yaw', 'plot.use_ortho', 
    280280                    'plot.show_chassis', 'plot.show_axes', 
     
    284284    jitter_sizes = [0.0, 0.1, 0.5, 1, 2, 3, 4, 5, 7, 10, 15, 20, 30, 40, 50] 
    285285 
    286     def __init__(self, parent=None, signalManager=None, name='Scatter Plot 3D'): 
     286    def __init__(self, parent=None, signalManager=None, name='ScatterPlot 3D'): 
    287287        OWWidget.__init__(self, parent, signalManager, name, True) 
    288288 
     
    371371            tooltip='Scale symbol size', 
    372372            callback=self.on_checkbox_update) 
    373         ss.setValue(8) 
    374373 
    375374        OWGUI.hSlider(box, self, 'plot.alpha_value', label='Transparency', 
     
    589588        if self.data == None: 
    590589            return 
    591         selected = self.plot.get_selected_indices() 
     590 
     591        selected = None#selected = self.plot.get_selected_indices() # TODO: crash 
    592592        if selected == None or len(selected) != len(self.data): 
    593593            return 
     594 
    594595        unselected = numpy.logical_not(selected) 
    595596        selected = self.data.selectref(list(selected)) 
Note: See TracChangeset for help on using the changeset viewer.