diff arrows/@plotter/plotter.m @ 0:672052bd81f8

Initial partial import.
author samer
date Wed, 19 Dec 2012 22:38:28 +0000
parents
children 3f77126f7b5f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/arrows/@plotter/plotter.m	Wed Dec 19 22:38:28 2012 +0000
@@ -0,0 +1,23 @@
+% plotter - Arrow for doing plots.
+%
+% plotter :: options {
+%    dom     :: [[N]->nonneg] / (1:N) ~'X values for plots';
+%    ylim    :: [[_]->nonneg] / [] ~'passed to ylim if not empty';
+%    xlim    :: [[_]->nonneg] / [] ~'passed to xlim if not empty';
+%    xlabel  :: [[_]->nonneg] / [] ~'passed to xlabel if not empty';
+%    ylabel  :: [[_]->nonneg] / [] ~'passed to ylabel if not empty';
+%    plotfn  :: plotfn / @plot     ~'function to create image';
+%    args    :: {[_]}  / {}        ~'extra arguments for plotfn'
+% } -> arrow({[[N,M]]}, {}, empty) ~'arrow from 2D arrays'.
+%
+% plotter is an arrow which displays each input array as line plots
+% using plot by default. The essential thing about plotter is that
+% the graphics must be updated by setting the 'YData' property of
+% the handle graphics object returned by the plotting function.
+
+function o=plotter(varargin)
+	s.opts=prefs('dlim',[],'dom',[],'ylim',[],'xlim',[],'plotfn',@plot,'args',{},'tranpose',0,varargin{:});
+	if isempty(s.opts.ylim), s.opts.ylim=s.opts.dlim; end
+	o=class(s,'plotter',agraph(1,s.opts));
+end
+