STY: Refactor MatplotlibCanvas from ImageCanvas and PlotCanvas.

This commit is contained in:
Tony S Yu
2012-07-27 21:57:46 -04:00
parent 9285898d39
commit 539b12dc2c
3 changed files with 22 additions and 23 deletions
+3 -11
View File
@@ -2,12 +2,12 @@ import numpy as np
from PyQt4 import QtGui
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
from ..utils import MatplotlibCanvas
from .base import Plugin
class PlotCanvas(FigureCanvasQTAgg):
class PlotCanvas(MatplotlibCanvas):
"""Canvas for displaying images.
This canvas derives from Matplotlib, and has attributes `fig` and `ax`,
@@ -15,17 +15,9 @@ class PlotCanvas(FigureCanvasQTAgg):
"""
def __init__(self, parent, height, width, **kwargs):
self.fig, self.ax = plt.subplots(figsize=(height, width), **kwargs)
FigureCanvasQTAgg.__init__(self, self.fig)
FigureCanvasQTAgg.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvasQTAgg.updateGeometry(self)
# Note: `setParent` must be called after `FigureCanvasQTAgg.__init__`.
self.setParent(parent)
super(PlotCanvas, self).__init__(parent, self.fig, **kwargs)
self.setMinimumHeight(150)
class PlotPlugin(Plugin):
"""Plugin for ImageViewer that contains a plot canvas.
+16 -1
View File
@@ -1,9 +1,11 @@
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
from PyQt4 import QtGui
__all__ = ['figimage', 'LinearColormap', 'ClearColormap']
__all__ = ['figimage', 'LinearColormap', 'ClearColormap', 'MatplotlibCanvas']
def figimage(image, scale=1, dpi=None, **kwargs):
@@ -72,3 +74,16 @@ class ClearColormap(LinearColormap):
'red': [(0.0, r), (1.0, r)],
'alpha': [(0.0, 0.0), (1.0, max_alpha)]}
LinearColormap.__init__(self, name, cg_speq)
class MatplotlibCanvas(FigureCanvasQTAgg):
"""Canvas for displaying images."""
def __init__(self, parent, figure, **kwargs):
self.fig = figure
FigureCanvasQTAgg.__init__(self, self.fig)
FigureCanvasQTAgg.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvasQTAgg.updateGeometry(self)
# Note: `setParent` must be called after `FigureCanvasQTAgg.__init__`.
self.setParent(parent)
+3 -11
View File
@@ -4,26 +4,18 @@ ImageViewer class for viewing and interacting with images.
import sys
from PyQt4 import QtGui, QtCore
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
from skimage.viewer.utils import figimage
from ..utils import figimage, MatplotlibCanvas
qApp = None
class ImageCanvas(FigureCanvasQTAgg):
class ImageCanvas(MatplotlibCanvas):
"""Canvas for displaying images."""
def __init__(self, parent, image, **kwargs):
self.fig, self.ax = figimage(image, **kwargs)
FigureCanvasQTAgg.__init__(self, self.fig)
FigureCanvasQTAgg.setSizePolicy(self,
QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
FigureCanvasQTAgg.updateGeometry(self)
# Note: `setParent` must be called after `FigureCanvasQTAgg.__init__`.
self.setParent(parent)
super(ImageCanvas, self).__init__(parent, self.fig, **kwargs)
class ImageViewer(QtGui.QMainWindow):