Projects/laydi
Projects
/
laydi
Archived
7
0
Fork 0

removed SinePlot and and added general selection sensitive function thingy

This commit is contained in:
Arnar Flatberg 2006-08-30 13:21:08 +00:00
parent b000792faa
commit fc2891bad8
1 changed files with 14 additions and 40 deletions

View File

@ -253,7 +253,9 @@ class Plot (gtk.Frame):
return self.title
def selection_changed(self, selection):
pass
if not self._sel_sensitive or not self.get_property('visible'):
return
self.set_current_selection(selection)
def set_selection_listener(self, listener):
"""Allow project to listen to selections.
@ -267,6 +269,7 @@ class Plot (gtk.Frame):
def get_toolbar(self):
return None
class EmptyView (Plot):
def __init__(self):
Plot.__init__(self, 'Empty view')
@ -392,25 +395,6 @@ class PlotToolbar(NavToolbar):
self.show_all()
self.message.hide()
class SinePlot(Plot):
def __init__(self):
Plot.__init__(self, 'Sine plot')
fig = Figure(figsize=(5,4), dpi=72)
ax = fig.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)
ax.plot(t,s)
self.canvas = FigureCanvas(fig)
self._toolbar = NavToolbar(self.canvas, None)
self._toolbar.set_property('show-arrow', False)
self.add(self.canvas)
self.canvas.show()
def get_toolbar(self):
return self._toolbar
class LineViewPlot(Plot):
"""Line view of current selection, no interaction
@ -461,9 +445,7 @@ class LineViewPlot(Plot):
def clear_background(self,event):
self._background = None
def selection_changed(self, selection):
if not self._sel_sensitive:
return
def set_current_selection(self, selection):
ids = selection[self.current_dim] # current identifiers
index = self.dataset.get_indices(self.current_dim, ids)
if self.use_blit:
@ -548,9 +530,7 @@ has no color and size options."""
ids = self.dataset_1.get_identifiers(self.current_dim, index)
self.selection_listener(self.current_dim, ids)
def selection_changed(self, selection):
if not self._sel_sensitive:
return
def set_current_selection(self, selection):
ids = selection[self.current_dim] # current identifiers
index = self.dataset_1.get_indices(self.current_dim, ids)
xdata_new = scipy.take(self.xaxis_data, index) #take data
@ -568,27 +548,23 @@ has no color and size options."""
def __init__(self, dataset_1, dataset_2, id_dim, sel_dim, id_1, id_2,c='b',s=30, name="Scatter plot"):
Plot.__init__(self, name)
self.ax = ax = self.fig.add_subplot(111)
#self.ax.set_position([0.01,0.01,.99,.99])
self.current_dim = id_dim
self.dataset_1 = dataset_1
x_index = dataset_1[sel_dim][id_1]
y_index = dataset_2[sel_dim][id_2]
self.xaxis_data = dataset_1._array[:,x_index]
self.yaxis_data = dataset_2._array[:,y_index]
ax.scatter(self.xaxis_data,self.yaxis_data,s=s,c=c,faceted=False,edgecolor='k',alpha=.6,cmap = cm.Set1)
lw = scipy.zeros(self.xaxis_data.shape,'f')
ax.scatter(self.xaxis_data,self.yaxis_data,s=s,c=c,linewidth=lw,edgecolor='k',alpha=.6,cmap = cm.Set1)
ax.set_title(self.get_title())
#ax.set_xlabel("%s - %s" % (sel_dim, id_1))
#ax.set_ylabel("%s - %s" % (sel_dim, id_2))
# collection
self.coll = ax.collections[0]
###
# add canvas to widget
self.add(self.canvas)
self.canvas.show()
# create toolbar
self._toolbar = PlotToolbar(self.canvas, None)
self._toolbar.chk.connect ('toggled' ,self.set_selection_sensitive)
self._toolbar.set_select_callback(self.rectangle_select_callback)
@ -613,14 +589,12 @@ has no color and size options."""
ids = self.dataset_1.get_identifiers(self.current_dim, index)
self.selection_listener(self.current_dim, ids)
def selection_changed(self, selection):
if not self._sel_sensitive:
return
def set_current_selection(self, selection):
ids = selection[self.current_dim] # current identifiers
index = self.dataset_1.get_indices(self.current_dim, ids)
lw = scipy.zeros(self.xaxis_data.shape,'f')
zo = lw.copy() + 1 #z-order
scipy.put(lw,index,2.)
zo = lw.copy() + 1 #z-order, selected on top
self.coll.set_linewidth(lw)
self.coll.set_zorder(zo)
self._toolbar.forward() #update data lims before draw
@ -711,7 +685,7 @@ class NetworkPlot(Plot):
ids = [node_ids[i] for i in index]
self.selection_listener(self.dataset.get_dim_name(0), ids)
def selection_changed(self, selection):
def set_current_selection(self, selection):
ids = selection[self.dataset.get_dim_name(0)] # current identifiers
node_set = set(self.graph.nodes())