Fix metaarray import in MultiPlotWidget.py example and MultiPlotItem.py

This commit is contained in:
Mikhail Terekhov 2014-01-20 22:15:14 -05:00
parent ca68f05f1f
commit baa6c4b82c
2 changed files with 10 additions and 10 deletions

View File

@ -10,11 +10,11 @@ from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg import pyqtgraph as pg
from pyqtgraph import MultiPlotWidget from pyqtgraph import MultiPlotWidget
try: try:
from metaarray import * from pyqtgraph.metaarray import *
except: except:
print("MultiPlot is only used with MetaArray for now (and you do not have the metaarray package)") print("MultiPlot is only used with MetaArray for now (and you do not have the metaarray package)")
exit() exit()
app = QtGui.QApplication([]) app = QtGui.QApplication([])
mw = QtGui.QMainWindow() mw = QtGui.QMainWindow()
mw.resize(800,800) mw.resize(800,800)
@ -22,7 +22,7 @@ pw = MultiPlotWidget()
mw.setCentralWidget(pw) mw.setCentralWidget(pw)
mw.show() mw.show()
ma = MetaArray(random.random((3, 1000)), info=[{'name': 'Signal', 'cols': [{'name': 'Col1'}, {'name': 'Col2'}, {'name': 'Col3'}]}, {'name': 'Time', 'vals': linspace(0., 1., 1000)}]) ma = MetaArray(random.random((3, 1000)), info=[{'name': 'Signal', 'cols': [{'name': 'Col1'}, {'name': 'Col2'}, {'name': 'Col3'}]}, {'name': 'Time', 'values': linspace(0., 1., 1000)}])
pw.plot(ma) pw.plot(ma)
## Start Qt event loop unless running in interactive mode. ## Start Qt event loop unless running in interactive mode.

View File

@ -9,23 +9,23 @@ from numpy import ndarray
from . import GraphicsLayout from . import GraphicsLayout
try: try:
from metaarray import * from ..metaarray import *
HAVE_METAARRAY = True HAVE_METAARRAY = True
except: except:
#raise #raise
HAVE_METAARRAY = False HAVE_METAARRAY = False
__all__ = ['MultiPlotItem'] __all__ = ['MultiPlotItem']
class MultiPlotItem(GraphicsLayout.GraphicsLayout): class MultiPlotItem(GraphicsLayout.GraphicsLayout):
""" """
Automaticaly generates a grid of plots from a multi-dimensional array Automaticaly generates a grid of plots from a multi-dimensional array
""" """
def plot(self, data): def plot(self, data):
#self.layout.clear() #self.layout.clear()
self.plots = [] self.plots = []
if HAVE_METAARRAY and (hasattr(data, 'implements') and data.implements('MetaArray')): if HAVE_METAARRAY and (hasattr(data, 'implements') and data.implements('MetaArray')):
if data.ndim != 2: if data.ndim != 2:
raise Exception("MultiPlot currently only accepts 2D MetaArray.") raise Exception("MultiPlot currently only accepts 2D MetaArray.")
@ -53,12 +53,12 @@ class MultiPlotItem(GraphicsLayout.GraphicsLayout):
title = info['name'] title = info['name']
if 'units' in info: if 'units' in info:
units = info['units'] units = info['units']
pi.setLabel('left', text=title, units=units) pi.setLabel('left', text=title, units=units)
else: else:
raise Exception("Data type %s not (yet?) supported for MultiPlot." % type(data)) raise Exception("Data type %s not (yet?) supported for MultiPlot." % type(data))
def close(self): def close(self):
for p in self.plots: for p in self.plots:
p[0].close() p[0].close()