function anim_camera(fname) % draw a sombrero and turn it around n = 50; x = y = linspace (-8, 8, n)'; [xx, yy] = meshgrid (x, y); r = sqrt (xx .^ 2 + yy .^ 2) + eps; c = 5 * sin (r) ./ r; h= surf(xx,yy,c,c); shading interp m = moviefile(fname); for angle=linspace(0,2*pi,50) set(gca,'CameraPosition',20*[sin(angle) 0 cos(angle) ]); set(gca,'CameraUpVector',[-cos(angle) 0 sin(angle) ]); drawnow sleep(.01) m = movieaddframe(m); end m = movieclose(m);
Download anim_camera.m
title('Some line propeties');
x = 0:0.1:6;
hold on
plot(x,sin(x),'b');
plot(x,sin(x-.4),'ro');
plot(x,sin(x-.8),'g--');
plot(x,sin(x-1.2),'c+');
hold off
Download test_plot.m
title('The GNU Octave logo');
n = 50;
x = y = linspace (-8, 8, n)';
[xx, yy] = meshgrid (x, y);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
c = 5 * sin (r) ./ r;
h= surf(xx,yy,c,c);
shading interp
Download test_sombrero.m
title('Demo of surf, colormap and colorbar');
[x,y] = meshgrid(linspace(-pi,pi,20));
c = cos(x) .* cos(y);
surf(x,y,c,c);
shading faceted
colorbar
Download test_surf.m
k = linspace(-4,4,100); omega = sqrt(1+k.^2); hold on plot(k,omega,'b'); plot(k,k,'r'); plot(k,-omega,'b'); plot(k,-k,'r'); plot(0,1,'b.') h1=text(0,1,'inertia-waves'); set(h1,'HorizontalAlignment','center','color',[0 0 1]) h2=text(2.4,2.4,'gravity-waves'); set(h2,'color',[1 0 0]) hold off
Download test_text.m
title('Demo of plot3');
z = linspace(-4*pi,4*pi,100);
hold on
h1=plot3(cos(z),sin(z),z,'r');
h2=plot3(-cos(z),-sin(z),z,'b');
set([h1 h2],'LineWidth',3);
axis([-4 4 -4 4 -13 13]);
hold off
set(gca,'CameraPosition',[0 40 3]);
Download test_helix.m
[x,y] = meshgrid(linspace(-pi,pi,30));
z = cos(x).*sin(y);
subplot(1,2,1)
title('Demo of pcolor: shading flat');
pcolor(x,y,z);
shading flat
subplot(1,2,2)
title('shading interp');
pcolor(x,y,z);
shading interp
Download test_pcolor.m
load(file_in_loadpath('coastline.octave'));
hold on
% loop over all continents and islands
% lakes have a negative area
index = find(Area>0);
for l=1:length(index);
i = index(l);
j=k(i)+1:k(i+1)-1;
patch(ncst(j,1),ncst(j,2),[.4 .8 .5]);
end
Download test_coastline.m
title('Normal distribution');
x = -4:0.1:4;
f = exp(-x.^2/2);
hold on
plot(x,f,'k');
patch([x(21) x(21:61) x(61) x(61)],[0 f(21:61) 0 0],[0.8 1 .8])
patch([x(1) x(1:21) x(21) x(1)],[0 f(1:21) 0 0],'r')
patch([x(61) x(61:end) x(end) x(1)],[0 f(61:end) 0 0],'r')
hold off
print -depsc test_print.eps
print -dpng test_print.png
Download test_print.m
title('Vector field');
[x,y] = meshgrid(1:20);
u = cos(2*pi*y/10);
v = cos(2*pi*x/10);
quiver(x,y,u,v,'b',1);
Download test_quiver.m
[x,y] = meshgrid(linspace(-pi,pi,100));
subplot(2,2,1);
title('Vibration modes of a rectangular membrane');
z = cos(x/2).*cos(y/2);
surf(x,y,z,z)
subplot(2,2,2);
z = sin(x).*cos(y/2);
surf(x,y,z,z)
subplot(2,2,3);
z = sin(y).*cos(x/2);
surf(x,y,z,z)
subplot(2,2,4);
z = sin(x).*sin(y);
surf(x,y,z,z)
Download test_subplot.m
[phi,theta] = meshgrid(linspace(0,2*pi,100));
x = (cos(phi) + 3) .* cos(theta);
y = (cos(phi) + 3) .* sin(theta);
z = sin(phi);
c = sin(3*theta);
surf(x,y,z,c)
shading interp
title('this is not a doughnut');
Download test_torus.m
n = 50; x = y = linspace (-8, 8, n)'; [xx, yy] = meshgrid (x, y); r = sqrt (xx .^ 2 + yy .^ 2) + eps; c = 5 * sin (r) ./ r; contourf(x,y,c);
Download test_contourf.m
n = 1000; x = pi * randn(n,1); y = pi * randn(n,1); c = cos(x) .* cos(y); scatter(x,y,4,c); colorbar
Download test_scatter.m
[r,phi,theta] = ndgrid(3:6,linspace(0,2*pi,20),linspace(0,pi,10)); x = r .* sin(theta) .* cos(phi); y = r .* sin(theta) .* sin(phi); z = r .* cos(theta); scatter3(x(:),y(:),z(:),3,r(:));
Download test_scatter3.m
% load sample data
load wfs_data.octave
SST(SST==0) = NaN;
% enable overplotting
hold on
% draw temperature
pcolor(lon,lat,SST); colorbar
% draw velocity
quiver(lon2,lat2,u,v,'k')
% set title
title('Surface temperature and velocity')
% draw coastline
plot_coastline('gshhs_l.octave',[-90.519 -80.397],[24.271 30.816])
hold off
% change size of figure (in pixels) to get a correct
% aspect ratio for print
set(gcf,'PaperPosition',[0 0 600 350]);
Download test_wfs.m
function anim_globe(fname)
% load example data
load levitus_data.octave
% minimum temperatur is -3
% put continents to -4
temp(isnan(temp)) = -4;
% add a the colormap entry for
% continents in gray
map = [0.7 0.7 0.7; colormap];
colormap(map)
% close the globe
lon = [lon; 365.5];
temp = [temp; temp(1,:)];
% convert to sperical coordinates
phi = lon*pi/180;
theta = (90 - lat)*pi/180;
[phi,theta] = ndgrid(phi,theta);
% cartesian coordinates
x = sin(theta) .* cos(phi);
y = sin(theta) .* sin(phi);
z = cos(theta);
% plot the globe with color
% representing sea surface temperature
surf(x,y,z,temp)
shading flat
title('Sea Surface Temperature');
% don't show axes
axis off
% rotate the camera
m = moviefile(fname);
for angle=0:0.1:2*pi
set(gca,'CameraPosition',20*[cos(angle) -sin(angle) .5]);
drawnow
m = movieaddframe(m);
end
m = movieclose(m);
Download anim_globe.m
% check availability of imread
if which('imread')
c = imread(file_in_loadpath('yapso_test_image.jpg'));
c = c(end:-1:1,:,:);
image(c);
else
disp('This examples requires the image package (from octave-forge)');
end
Download test_image.m