Merge pull request #84 from sanguinariojoe/master
Matplotlib navigation toolbar support
This commit is contained in:
commit
5ec2ea0e6c
|
@ -33,7 +33,7 @@ try:
|
||||||
matplotlib.rcParams['backend.qt4']='PySide'
|
matplotlib.rcParams['backend.qt4']='PySide'
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
|
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
|
||||||
if V(matplotlib.__version__) < V("1.5.0"):
|
if V(matplotlib.__version__) < V("1.4.0"):
|
||||||
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
|
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
|
||||||
else:
|
else:
|
||||||
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
|
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
|
||||||
|
@ -337,6 +337,38 @@ def save(path, figsize=None, dpi=None):
|
||||||
plt.update()
|
plt.update()
|
||||||
|
|
||||||
|
|
||||||
|
def addNavigationToolbar():
|
||||||
|
"""Add the matplotlib QT navigation toolbar to the plot.
|
||||||
|
"""
|
||||||
|
plt = getPlot()
|
||||||
|
if not plt:
|
||||||
|
return
|
||||||
|
# Check that the navigation toolbar has not been already created
|
||||||
|
if plt.mpl_toolbar is not None:
|
||||||
|
return
|
||||||
|
# Create the navigation toolbar and add it
|
||||||
|
plt.mpl_toolbar = NavigationToolbar(plt.canvas, plt)
|
||||||
|
vbox = plt.layout()
|
||||||
|
vbox.addWidget(plt.mpl_toolbar)
|
||||||
|
|
||||||
|
|
||||||
|
def delNavigationToolbar():
|
||||||
|
"""Remove the matplotlib QT navigation toolbar from the plot.
|
||||||
|
"""
|
||||||
|
plt = getPlot()
|
||||||
|
if not plt:
|
||||||
|
return
|
||||||
|
# Check that the navigation toolbar already exist
|
||||||
|
if plt.mpl_toolbar is None:
|
||||||
|
return
|
||||||
|
# Remove the widget from the layout
|
||||||
|
vbox = plt.layout()
|
||||||
|
vbox.removeWidget(plt.mpl_toolbar)
|
||||||
|
# Destroy the navigation toolbar
|
||||||
|
plt.mpl_toolbar.deleteLater()
|
||||||
|
plt.mpl_toolbar = None
|
||||||
|
|
||||||
|
|
||||||
class Line():
|
class Line():
|
||||||
def __init__(self, axes, x, y, name):
|
def __init__(self, axes, x, y, name):
|
||||||
"""Construct a new plot serie.
|
"""Construct a new plot serie.
|
||||||
|
@ -397,9 +429,12 @@ class Plot(PySide.QtGui.QWidget):
|
||||||
self.axes.spines['top'].set_color('none')
|
self.axes.spines['top'].set_color('none')
|
||||||
self.axes.yaxis.set_ticks_position('left')
|
self.axes.yaxis.set_ticks_position('left')
|
||||||
self.axes.spines['right'].set_color('none')
|
self.axes.spines['right'].set_color('none')
|
||||||
|
# Add the navigation toolbar by default
|
||||||
|
self.mpl_toolbar = NavigationToolbar(self.canvas, self)
|
||||||
# Setup layout
|
# Setup layout
|
||||||
vbox = PySide.QtGui.QVBoxLayout()
|
vbox = PySide.QtGui.QVBoxLayout()
|
||||||
vbox.addWidget(self.canvas)
|
vbox.addWidget(self.canvas)
|
||||||
|
vbox.addWidget(self.mpl_toolbar)
|
||||||
self.setLayout(vbox)
|
self.setLayout(vbox)
|
||||||
# Active series
|
# Active series
|
||||||
self.series = []
|
self.series = []
|
||||||
|
|
Loading…
Reference in New Issue
Block a user