from zope.interface import Interface from zope.interface import implements from graph.components import BaseComponent, Image from graph.interfaces import IAxis, IViewBox class IPlotImage(Interface): """ Componante to plot a 2d graph of a given image """ class PlotImage( BaseComponent): """ Makes a 2D plot for an image """ implements(IPlotImage) def __init__(self, parent, image): super(PlotImage, self).__init__(parent) self.image = image self.x_axis = IAxis(self) self.x_axis.orientation='bottom' self.x_axis.start=0 self.x_axis.end=8 self.y_axis = IAxis(self) self.y_axis.orientation='left' self.y_axis.start=-5 self.y_axis.end=3 self.vb = IViewBox(self) self.vb.addItem( self.x_axis ) self.vb.addItem( self.y_axis ) self.vb.addItem( self.image ) def render(self): return self.vb.render() image = Image(None, None) plot = PlotImage( None, image) print( plot.render())