summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/python
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2016-03-27 06:51:27 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2016-03-27 06:51:27 -0700
commit315880c4c9dc6a3ff2c87552fada960ed337d9ff (patch)
tree56646f5f90d063096652df7a6fa8d81a0d222d26 /gnuradio-runtime/python
parent61ac8a9a685ef64db3d4478f4072b705d059e6ec (diff)
parentd44dae83c5b486ad320cf2274e4fbcf79c9178c1 (diff)
Merge branch 'master' into next
Diffstat (limited to 'gnuradio-runtime/python')
-rw-r--r--gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx46
1 files changed, 29 insertions, 17 deletions
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
index bb53e02cc4..cc9f76f864 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
@@ -28,7 +28,18 @@ try:
matplotlib.use("QT4Agg")
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
- from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
+
+ # Manage different matplotlib versions
+ try:
+ from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
+ except ImportError:
+ try:
+ from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
+ except ImportError:
+ print sys.argv[0], "could not load QTAgg backend."
+ sys.exit(1)
+
+
from matplotlib.figure import Figure
except ImportError:
print sys.argv[0], "requires networkx and matplotlib.", \
@@ -42,6 +53,11 @@ import itertools
from gnuradio import gr, ctrlport
from gnuradio.ctrlport.GrDataPlotter import *
+if float(nx.__version__) >= 1.11:
+ from networkx.drawing.nx_agraph import graphviz_layout
+else:
+ graphviz_layout = nx.graphviz_layout
+
class MAINWindow(QtGui.QMainWindow):
def minimumSizeHint(self):
return QtGui.QSize(800,600)
@@ -310,13 +326,12 @@ class DataTable(QtGui.QWidget):
self.sp = self.f.add_subplot(111)
self.sp.autoscale_view(True,True,True)
self.sp.set_autoscale_on(True)
- self.canvas = FigureCanvas(self.f)
# set up tabs
self.tabber = QtGui.QTabWidget();
self.layout.addWidget(self.tabber);
self.tabber.addTab(self.perfTable,"Table View");
- self.tabber.addTab(self.canvas, "Graph View");
+ self.tabber.addTab(self.f.canvas, "Graph View");
# set up timer
self.timer = QtCore.QTimer()
@@ -402,7 +417,7 @@ class DataTableBuffers(DataTable):
for r,w in zip(self.disp, sorted_fullness):
r.set_height(w[1])
- self.canvas.draw()
+ self.f.canvas.draw()
class DataTableRuntimes(DataTable):
def __init__(self, radioclient, G):
@@ -423,7 +438,7 @@ class DataTableRuntimes(DataTable):
total_work = 1
work_times = dict(zip(
map(lambda x: x.split("::")[0], wrk_knobs.keys()),
- map(lambda x: x.value/total_work, wrk_knobs.values())))
+ map(lambda x: 1e-10 + x.value/total_work, wrk_knobs.values())))
# update table view
if(self.perfTable.isVisible()):
@@ -441,7 +456,6 @@ class DataTableRuntimes(DataTable):
else:
sorted_work = work_times.items()
- f = plt.figure(self.f.number)
if(not self.disp):
self.disp = self.sp.bar(range(0,len(sorted_work)),
map(lambda x: x[1], sorted_work),
@@ -456,7 +470,7 @@ class DataTableRuntimes(DataTable):
for r,w in zip(self.disp, sorted_work):
r.set_height(w[1])
- self.canvas.draw()
+ self.f.canvas.draw()
class MForm(QtGui.QWidget):
def update(self):
@@ -775,11 +789,10 @@ class MForm(QtGui.QWidget):
self.sp.autoscale_view(True,True,True);
self.sp.set_autoscale_on(True)
- self.canvas = FigureCanvas(self.f)
- self.layout.addWidget(self.canvas);
+ self.layout.addWidget(self.f.canvas);
- self.pos = nx.graphviz_layout(self.G);
- #self.pos = nx.pygraphviz_layout(self.G);
+ self.pos = graphviz_layout(self.G);
+ #self.pos = pygraphviz_layout(self.G);
#self.pos = nx.spectral_layout(self.G);
#self.pos = nx.circular_layout(self.G);
#self.pos = nx.shell_layout(self.G);
@@ -840,14 +853,14 @@ class MForm(QtGui.QWidget):
def drawGraph(self):
self.do_update = True
- self.canvas.updateGeometry()
+ self.f.canvas.updateGeometry()
self.sp.clear()
plt.figure(self.f.number)
plt.subplot(111)
nx.draw(self.G, self.pos,
edge_color=self.edge_weights,
node_color='#A0CBE2',
- width=map(lambda x: 3+math.log(x), self.edge_weights),
+ width=map(lambda x: 3+math.log(x+1e-20), self.edge_weights),
node_shape="s",
node_size=self.node_weights,
edge_cmap=plt.cm.Reds,
@@ -857,8 +870,7 @@ class MForm(QtGui.QWidget):
nx.draw_networkx_labels(self.G, self.pos,
font_size=12)
- self.canvas.draw()
- self.canvas.show()
+ self.f.canvas.show()
def updateGraph(self):
@@ -872,7 +884,7 @@ class MForm(QtGui.QWidget):
nx.draw_networkx_edges(self.G, self.pos,
edge_color=self.edge_weights,
- width=map(lambda x: 3+math.log(x), self.edge_weights),
+ width=map(lambda x: 3+math.log(x+1e-20), self.edge_weights),
edge_cmap=plt.cm.Reds,
ax=self.sp,
arrows=False)
@@ -880,7 +892,7 @@ class MForm(QtGui.QWidget):
nx.draw_networkx_labels(self.G, self.pos,
ax=self.sp, font_size=12)
- self.canvas.draw()
+ self.f.canvas.draw()
class MyApp(object):