Mercurial > repos > public > sbplib
diff +anim/setup_2d_plot.m @ 0:48b6fb693025
Initial commit.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 17 Sep 2015 10:12:50 +0200 |
parents | |
children | f87003695677 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+anim/setup_2d_plot.m Thu Sep 17 10:12:50 2015 +0200 @@ -0,0 +1,68 @@ +function [update_data,figure_handle] = setup_2d_plot(x,y,clim,zfun) + default_arg('zfun',@(z)z); + + Z = zeros(length(x),length(y)); + figure_handle = figure; + plot_handle = imagesc(x,y,Z); + axis_handle = gca; + + xlabel('x') + ylabel('y') + xlim([x(1) x(end)]); + ylim([y(1) y(end)]); + caxis(clim); + % axis vis3d + colormap(parula(256)) + colorbar + + function update(t,z) + Z = zfun(z); + % Z = reshape(zfun(z),length(x),length(y)); + if ishandle(plot_handle) && ishandle(axis_handle) + set(plot_handle,'CData',Z) + title(axis_handle,sprintf('T=%.3f',t)); + drawnow + end + end + update_data = @update; +end + + +% TODO +% This function is for squre grid. +% This function is for 2d image. +% Make one for 3d surface +% Make one for curvilinear grids using pcolor + + +function [update_data,figure_handle,plot_handles] = setup_1d_plot(x,y_lim,yfun) + + figure_handle = figure; + plot_handles(1) = plot(x,0*x); + hold on + for i = 2:length(yfun) + plot_handles(i) = plot(x,0*x); + end + hold off + + axis_handle = gca; + + xlabel('x') + ylabel('y') + xlim([x(1) x(end)]); + ylim(y_lim); + + function update(t,varargin) + if ishandle(figure_handle) && ishandle(axis_handle) + for i = 1:length(yfun) + set(plot_handles(i),'YData',yfun{i}(varargin{:})); + end + title(axis_handle,sprintf('T=%.3f',t)); + drawnow + end + end + update_data = @update; +end + + +