def createVisualizerList(self): ids={} if isinstance(self.dataContainer, DataContainer.SampleContainer): data_type = pyphant.core.Connectors.TYPE_ARRAY elif isinstance(self.dataContainer, DataContainer.FieldContainer): data_type = pyphant.core.Connectors.TYPE_IMAGE for visualizer in DataVisReg.getInstance().getVisualizers(data_type): id=wx.NewId() ids[id]=visualizer #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id) return ids
def createVisualizerList(self): ids = {} if isinstance(self.dataContainer, DataContainer.SampleContainer): data_type = pyphant.core.Connectors.TYPE_ARRAY elif isinstance(self.dataContainer, DataContainer.FieldContainer): data_type = pyphant.core.Connectors.TYPE_IMAGE for visualizer in DataVisReg.getInstance().getVisualizers(data_type): id = wx.NewId() ids[id] = visualizer #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id) return ids
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. u""" """ __id__ = "$Id: ImageVisualizer.py 22 2006-11-28 14:31:46Z liehr $" __author__ = "$Author: liehr $" __version__ = "$Revision: 22 $" # $Source$ import pylab import pyphant.core.Connectors from pyphant.wxgui2.DataVisReg import DataVisReg import scipy class PrimitiveVisualizer(object): name='Primitive Visualizer' def __init__(self, fieldContainer): self.fieldContainer = fieldContainer self.execute() def execute(self): print self.fieldContainer DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_INT, PrimitiveVisualizer)
class SurfaceVisualizer(object): name = "Surface" def __init__(self, fc, show=True): assert len(fc.dimensions) == 2, "2D FC expected" self.fc = fc self.draw() if show: self.show() def draw(self): fig = pyplot.figure() ax = fig.gca(projection='3d') y, x = np.meshgrid(*[d.data for d in self.fc.dimensions]) z = self.fc.data zrange = z.max() - z.min() ax.plot_surface( x, y, z, cmap=cm.coolwarm, linewidth=0, rstride=1, cstride=1 ) ax.set_zlim(z.min() - zrange, z.max() + zrange) def show(self): pyplot.show() DataVisReg.getInstance().registerVisualizer( TYPE_IMAGE, SurfaceVisualizer )
wx.Frame.__init__(self, None, -1, "Visualize " + dataContainer.longname) self.sizer = wx.BoxSizer(wx.VERTICAL) self.plot_panel = OscPlotPanel(self, dataContainer) self.configuration_panel = ConfigurationPanel(self, dataContainer, self.plot_panel) self.sizer.Add(self.configuration_panel, 0, wx.EXPAND) self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Centre() self.Show(True) def createVisualizerList(self): ids = {} if isinstance(self.dataContainer, DataContainer.SampleContainer): data_type = pyphant.core.Connectors.TYPE_ARRAY elif isinstance(self.dataContainer, DataContainer.FieldContainer): data_type = pyphant.core.Connectors.TYPE_IMAGE for visualizer in DataVisReg.getInstance().getVisualizers(data_type): id = wx.NewId() ids[id] = visualizer #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id) return ids def OnExit(self, event): self.Close() DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, PlotFrame)
self.init_cvalues(dataContainer) self.dclongname = dataContainer.longname wx.Frame.__init__(self, None, -1, "Z-Stack " + dataContainer.longname) self.sizer = wx.BoxSizer(wx.VERTICAL) imgFC = dataContainer[0] self.dataContainer = dataContainer self.plotPanel = ZStackPlotPanel(self, imgFC) self.configPanel = ZStackConfigPanel(self, self.plotPanel) self.sizer.Add(self.configPanel, 0, wx.EXPAND) self.sizer.Add(self.plotPanel, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Centre() self.Show(True) def init_zvalues(self, dataContainer): zunit = dataContainer.dimensions[0].unit self.zvalues = [str(zvalue * zunit) for zvalue \ in dataContainer.dimensions[0].data] def init_cvalues(self, dataContainer): self.cmaps = pylab.cm._cmapnames self.cbads = ['red', 'green', 'blue', 'yellow', 'black', 'white'] self.cmaps.sort() self.cbads.sort() def OnExit(self, event): self.Close() DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ZStackVisualizer)
if u"Smoothed Absorption" in data.longnames.keys(): setField(u"Smoothed Absorption") elif u"Absorption" in data.longnames.keys(): setField(u"Absorption") else: self.xData = data[u"Wellenlänge[nm]"] self.yData = data[u"ScopRaw[counts]"] pylab.ylabel("Scop Raw / a.u.") else: self.xData = self.dataContainer[0] self.yData = self.dataContainer[1] for i in xrange(len(self.xData.data)): self.ordinates.append(self.yData.data[i]) self.abscissae.append(self.xData.data[i]) if u"Minima" in data.longnames.keys(): mins = data[u"Minima"] for i in xrange(len(mins.data)): self.mins.append(mins.data[i]) pylab.xlabel("Wavelength $\lambda$ / nm") pylab.title(self.dataContainer.longname) def draw(self): for i in xrange(len(self.ordinates)): pylab.plot(self.abscissae[i], self.ordinates[i]) for i in xrange(len(self.mins)): pylab.axvline(self.mins[i]) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, AbsorptionVisualizer)
wx.Frame.__init__(self, None, -1, "Visualize "+dataContainer.longname) self.sizer = wx.BoxSizer(wx.VERTICAL) self.plot_panel = OscPlotPanel(self, dataContainer) self.configuration_panel = ConfigurationPanel(self, dataContainer, self.plot_panel) self.sizer.Add(self.configuration_panel, 0, wx.EXPAND) self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Centre() self.Show(True) def createVisualizerList(self): ids={} if isinstance(self.dataContainer, DataContainer.SampleContainer): data_type = pyphant.core.Connectors.TYPE_ARRAY elif isinstance(self.dataContainer, DataContainer.FieldContainer): data_type = pyphant.core.Connectors.TYPE_IMAGE for visualizer in DataVisReg.getInstance().getVisualizers(data_type): id=wx.NewId() ids[id]=visualizer #self.GetCanvas().Bind(wx.EVT_MENU, self.visualize, id=id) return ids def OnExit(self, event): self.Close() DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, PlotFrame)
self.abscissae.append(self.xData.data[i]) if u'Minima' in data.longnames.keys(): mins = data[u'Minima'] for i in xrange(len(mins.data)): self.mins.append(mins.data[i]) pylab.xlabel('Wavelength $\lambda$ / nm') pylab.title(self.dataContainer.longname) def draw(self): for i in xrange(len(self.ordinates)): pylab.plot(self.abscissae[i],self.ordinates[i]) for i in xrange(len(self.mins)): pylab.axvline(self.mins[i]) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_ARRAY, AbsorptionVisualizer)
def saveSample(self, path): outData = self.dataContainer.data if path[-3:] == 'csv': outFile = file(path,'wb') csvWriter = csv.writer(outFile,dialect='excel') #csvWriter.writerow([self.dataContainer.dimensions[0].label, self.dataContainer.label]) csvWriter.writerows(outData.tolist()) else: outFile = file(path,'w') #outFile.write(str([self.dataContainer.dimensions[0].label, self.dataContainer.label])+"\n") write_array(outFile,outData.tolist()) outFile.close() DataVisReg.getInstance().registerVisualizer(Connectors.TYPE_ARRAY, ExternalDAT)
str([ self.dataContainer.dimensions[0].label, self.dataContainer.label ]) + "\n") write_array(outFile, outData) outFile.close() def saveSample(self, path): outData = self.dataContainer.data if path[-3:] == 'csv': outFile = file(path, 'wb') csvWriter = csv.writer(outFile, dialect='excel') #csvWriter.writerow( # [self.dataContainer.dimensions[0].label, # self.dataContainer.label] # ) csvWriter.writerows(outData.tolist()) else: outFile = file(path, 'w') #outFile.write( # str([ # self.dataContainer.dimensions[0].label, # self.dataContainer.label]) + "\n" # ) write_array(outFile, outData.tolist()) outFile.close() DataVisReg.getInstance().registerVisualizer(Connectors.TYPE_ARRAY, ExternalDAT)
name = u"Line chart" linestyle = '-' def draw(self, abscissa, data, maskedData, error, **kwargs): if error == None: for ordinate in maskedData: pylab.plot(abscissa, ordinate, self.linestyle) else: for i in xrange(data.shape[0]): line = pylab.plot(abscissa, maskedData[i], self.linestyle) color = [l._color for l in line] for direction in [-1., 1.]: ordinate = maskedData[i] + direction * error[i] line = pylab.plot(abscissa, ordinate, linestyle=':') for j in xrange(len(color)): line[j]._color = color[j] pylab.axis([self.xmin, self.xmax, self.ymin, self.ymax]) class ScatterPlot(LineChart): name = u"Scatter Plot" linestyle = 'o' DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, BarChart) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, LineChart) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, ScatterPlot)
self.dclongname = dataContainer.longname wx.Frame.__init__(self, None, -1, "Z-Stack " + dataContainer.longname) self.sizer = wx.BoxSizer(wx.VERTICAL) imgFC = dataContainer[0] self.dataContainer = dataContainer self.plotPanel = ZStackPlotPanel(self, imgFC) self.configPanel = ZStackConfigPanel(self, self.plotPanel) self.sizer.Add(self.configPanel, 0, wx.EXPAND) self.sizer.Add(self.plotPanel, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Centre() self.Show(True) def init_zvalues(self, dataContainer): zunit = dataContainer.dimensions[0].unit self.zvalues = [str(zvalue * zunit) for zvalue \ in dataContainer.dimensions[0].data] def init_cvalues(self, dataContainer): self.cmaps = pylab.cm._cmapnames self.cbads = ['red', 'green', 'blue', 'yellow', 'black', 'white'] self.cmaps.sort() self.cbads.sort() def OnExit(self, event): self.Close() DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ZStackVisualizer)
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER # OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """This module provides a visualizer that simply prints the input""" import pyphant.core.Connectors from pyphant.wxgui2.DataVisReg import DataVisReg class PrimitiveVisualizer(object): name = 'Primitive Visualizer' def __init__(self, fieldContainer): self.fieldContainer = fieldContainer self.execute() def execute(self): print self.fieldContainer DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_INT, PrimitiveVisualizer)
pylab.imshow(self.fieldContainer.maskedData, aspect='auto', interpolation='nearest', vmin=vmin, vmax=vmax, origin='lower', extent=(xmin, xmax, ymin, ymax)) pylab.colorbar(format=F(self.fieldContainer), ax=ax) else: im = NonUniformImage(ax, extent=(xmin,xmax,ymin,ymax)) if vmin is not None or vmax is not None: im.set_clim(vmin, vmax) im.set_data(x, y, self.fieldContainer.maskedData) else: im.set_data(x, y, self.fieldContainer.maskedData) im.autoscale_None() ax.images.append(im) ax.set_xlim(xmin,xmax) ax.set_ylim(ymin,ymax) pylab.colorbar(im,format=F(self.fieldContainer), ax=ax) pylab.xlabel(self.fieldContainer.dimensions[-1].shortlabel) pylab.ylabel(self.fieldContainer.dimensions[-2].shortlabel) pylab.title(self.fieldContainer.label) #ax=pylab.gca() if self.show: pylab.ion() pylab.show() DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, ImageVisualizer)
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. u""" """ __id__ = "$Id$" __author__ = "$Author$" __version__ = "$Revision$" # $Source$ from pyphant.core.Connectors import (TYPE_IMAGE, TYPE_ARRAY) from pyphant.wxgui2.DataVisReg import DataVisReg from pyphant.core.KnowledgeManager import KnowledgeManager class KMVisualizer(object): name='Register @ KnowledgeManager' def __init__(self, DataContainer, show=True): if show: kmanager = KnowledgeManager.getInstance() kmanager.registerDataContainer(DataContainer) DataVisReg.getInstance().registerVisualizer(TYPE_IMAGE, KMVisualizer) DataVisReg.getInstance().registerVisualizer(TYPE_ARRAY, KMVisualizer)
class LineChart(Chart): name = u"Line chart" linestyle = '-' def draw(self, abscissa, data, maskedData, error, **kwargs): if error == None: for ordinate in maskedData: pylab.plot(abscissa, ordinate, self.linestyle) else: for i in xrange(data.shape[0]): line = pylab.plot(abscissa, maskedData[i], self.linestyle) color = [l._color for l in line] for direction in [-1.,1.]: ordinate = maskedData[i] + direction*error[i] line = pylab.plot(abscissa, ordinate, linestyle=':') for j in xrange(len(color)): line[j]._color = color[j] pylab.axis([self.xmin, self.xmax, self.ymin, self.ymax]) class ScatterPlot(LineChart): name = u"Scatter Plot" linestyle = 'o' DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, BarChart) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, LineChart) DataVisReg.getInstance().registerVisualizer(pyphant.core.Connectors.TYPE_IMAGE, ScatterPlot)