Mercurial > repos > public > sbplib
annotate +anim/setup_1d_plot.m @ 56:ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 12 Nov 2015 12:03:45 -0800 |
parents | b21c53ff61d4 |
children | dbc50fa58ca6 |
rev | line source |
---|---|
56
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
1 % Creates a plot and provides a function to update the data in it. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
2 % x - Vector of x-values to plot for. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
3 % y_lim - 1x2 vector containing the y limits of the plot. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
4 % yfun - Function or a cell array of functions of y data vectors |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
5 % that should be plotted. The output of each function |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
6 % will be plotted to the same axis. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
7 % |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
8 % update_data(t,varargin) - Function to update plot data. All varargin will |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
9 % be passed to functions in yfun. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
10 % plot_handles - Array of plot_handles. One for each yfun. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
11 % axis_handle - Handle to the axis plotted to. |
ce90abc350c5
Added documentation to setup_1d_plot. Added updatableLine.m
Jonatan Werpers <jonatan@werpers.com>
parents:
48
diff
changeset
|
12 function [update_data, plot_handles, axis_handle] = setup_1d_plot(x,y_lim,yfun) |
0 | 13 default_arg('yfun',{@(y)y}); |
14 | |
48
b21c53ff61d4
Made setup_1d_plot behave more like matlabs plot().
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
15 if isa(yfun,'function_handle') |
b21c53ff61d4
Made setup_1d_plot behave more like matlabs plot().
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
16 yfun = {yfun}; |
b21c53ff61d4
Made setup_1d_plot behave more like matlabs plot().
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
17 end |
b21c53ff61d4
Made setup_1d_plot behave more like matlabs plot().
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
18 |
b21c53ff61d4
Made setup_1d_plot behave more like matlabs plot().
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
19 figure_handle = gcf; |
0 | 20 plot_handles(1) = plot(x,0*x); |
21 hold on | |
22 for i = 2:length(yfun) | |
23 plot_handles(i) = plot(x,0*x); | |
24 end | |
25 hold off | |
26 | |
27 axis_handle = gca; | |
28 | |
29 xlabel('x') | |
30 ylabel('y') | |
31 xlim([x(1) x(end)]); | |
32 ylim(y_lim); | |
33 | |
34 function update(t,varargin) | |
35 if ishandle(figure_handle) && ishandle(axis_handle) | |
36 for i = 1:length(yfun) | |
37 set(plot_handles(i),'YData',yfun{i}(varargin{:})); | |
38 end | |
39 title(axis_handle,sprintf('T=%.3f',t)); | |
40 drawnow | |
41 end | |
42 end | |
43 update_data = @update; | |
44 end |