Changeset 8750:f3d1e1f36c36 in orange


Ignore:
Timestamp:
08/23/11 22:57:41 (3 years ago)
Author:
matejd <matejd@…>
Branch:
default
Convert:
52dbb63015fd15792ffcf2d7fbe24384973cb546
Message:

Added value lines

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

Legend:

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

    r8749 r8750  
    158158                glEnd() 
    159159 
     160        self._draw_value_lines() 
     161 
     162    def _draw_value_lines(self): 
     163        if self.showValueLines: 
     164            for line in self.value_lines: 
     165                x, y, z, xn, yn, zn, color = line 
     166                glColor3f(*color) 
     167                glBegin(GL_LINES) 
     168                glVertex3f(x, y, z) 
     169                glVertex3f(x+self.valueLineLength*xn, 
     170                           y+self.valueLineLength*yn, 
     171                           z+self.valueLineLength*zn) 
     172                glEnd() 
     173 
    160174    def updateData(self, labels=None, setAnchors=0, **args): 
    161175        self.clear() 
     176        self.value_lines = [] 
    162177 
    163178        if not self.have_data or len(labels) < 3: 
     
    220235                                          numpy.array([1., 1., 1.]), numpy.array([0., 0., 0.])) 
    221236 
     237        x_positions = proj_data[0]-0.5 
     238        y_positions = proj_data[1]-0.5 
     239        z_positions = proj_data[2]-0.5 
     240        XAnchors = [anchor[0] for anchor in self.anchor_data] 
     241        YAnchors = [anchor[1] for anchor in self.anchor_data] 
     242        ZAnchors = [anchor[2] for anchor in self.anchor_data] 
     243        data_size = len(self.raw_data) 
     244 
     245        for i in range(data_size): 
     246            if not valid_data[i]: 
     247                continue 
     248            if self.useDifferentColors: 
     249                color = self.discPalette.getRGB(self.original_data[self.data_class_index][i]) 
     250            else: 
     251                color = (0, 0, 0) 
     252 
     253            len_anchor_data = len(self.anchor_data) 
     254            x = array([x_positions[i]] * len_anchor_data) 
     255            y = array([y_positions[i]] * len_anchor_data) 
     256            z = array([z_positions[i]] * len_anchor_data) 
     257            dists = numpy.sqrt((XAnchors - x)**2 + (YAnchors - y)**2 + (ZAnchors - z)**2) 
     258            x_directions = 0.03 * (XAnchors - x) / dists 
     259            y_directions = 0.03 * (YAnchors - y) / dists 
     260            z_directions = 0.03 * (ZAnchors - z) / dists 
     261            example_values = [self.no_jittering_scaled_data[attr_ind, i] for attr_ind in indices] 
     262 
     263            for j in range(len_anchor_data): 
     264                self.value_lines.append([x_positions[i], y_positions[i], z_positions[i], 
     265                                         x_directions[j]*example_values[j], 
     266                                         y_directions[j]*example_values[j], 
     267                                         z_directions[j]*example_values[j], 
     268                                         color]) 
     269 
    222270        self.updateGL() 
    223271 
  • orange/OrangeWidgets/Visualize Qt/OWLinProjQt.py

    r8749 r8750  
    163163        self.graph.gui.show_legend_check_box(box) 
    164164        bbox = OWGUI.widgetBox(box, orientation = "horizontal") 
    165         OWGUI.checkBox(bbox, self, 'graph.showValueLines', 'Show value lines  ', callback = self.updateGraph) 
    166         OWGUI.qwtHSlider(bbox, self, 'graph.valueLineLength', minValue=1, maxValue=10, step=1, callback = self.updateGraph, showValueLabel = 0) 
     165        if "3d" in name.lower(): 
     166            OWGUI.checkBox(bbox, self, 'graph.showValueLines', 'Show value lines  ', callback = self.graph.updateGL) 
     167            OWGUI.qwtHSlider(bbox, self, 'graph.valueLineLength', minValue=1, maxValue=10, step=1, callback = self.graph.updateGL, showValueLabel = 0) 
     168        else: 
     169            OWGUI.checkBox(bbox, self, 'graph.showValueLines', 'Show value lines  ', callback = self.updateGraph) 
     170            OWGUI.qwtHSlider(bbox, self, 'graph.valueLineLength', minValue=1, maxValue=10, step=1, callback = self.updateGraph, showValueLabel = 0) 
    167171        OWGUI.checkBox(box, self, 'graph.useDifferentSymbols', 'Use different symbols', callback = self.updateGraph, tooltip = "Show different class values using different symbols") 
    168172        OWGUI.checkBox(box, self, 'graph.useDifferentColors', 'Use different colors', callback = self.updateGraph, tooltip = "Show different class values using different colors") 
Note: See TracChangeset for help on using the changeset viewer.