annotate +anim/setup_1d_plot.m @ 69:f87003695677

Moved drawno out of plot update functions for huge performance boost.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 23 Nov 2015 13:54:01 +0100
parents dbc50fa58ca6
children a4e1608ae980
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 default_arg('yfun',{@(y)y});
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 plot_handles(1) = plot(x,0*x);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 for i = 2:length(yfun)
66
dbc50fa58ca6 Made setup_1d_plot behave like matlab plot.
Jonatan Werpers <jonatan@werpers.com>
parents: 56
diff changeset
22 plot_handles(i) = line(x,0*x);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 axis_handle = gca;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 xlabel('x')
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 ylabel('y')
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 xlim([x(1) x(end)]);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 ylim(y_lim);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 function update(t,varargin)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 if ishandle(figure_handle) && ishandle(axis_handle)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 for i = 1:length(yfun)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 set(plot_handles(i),'YData',yfun{i}(varargin{:}));
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 title(axis_handle,sprintf('T=%.3f',t));
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 update_data = @update;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 end