Matlab Quick Reference: Plot
Matlab figure title with two lines
1 2 3 4 5 6 7 8 9 10 | clc plot(1:10) title({'Comparison of Results';'using Mean Squared Error (MSE)'}) set(gca, 'Units', 'Normalized') P=get(gca,'Position'); % Shrink the bottom margin by half its height and % enlarge the top margin by the same amount % (since the axis is the same height before & after) set(gca, 'Position', [P(1) P(2)/2 P(3) P(4)]) disp('This is how it looks after moving the axis') |
Double axis graphs
In order to plot y1=f(x1) and y2=g(x2) with two Y-axes, copy the following lines:
1 2 3 4 5 6 7 8 9 | line(x1,y1,'Color','r'); ax1 = gca; set(ax1,'XColor','r','YColor','r') ax2 = axes( 'Position',get(ax1,'Position'),. . . 'XAxisLocation','top',. . . 'YAxisLocation','right',. . . 'Color','none',. . . 'XColor','k','YColor','k'); line(x2,y2,'Color','k','Parent',ax2); |
Set Tick location and Labels
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | % Generate a random vector of earning that can range from % $0 - $2000. Each element of earnings correspond to the % earnings for a given month. earnings = 1000 + 1000*rand(1,12) - 1000*rand(1,12); % Generate a bar plot of the earnings with 12 bins % (1 bin per month) bar(earnings); % Set the XLim so that it ranges from .5 - 12.5. % The reason that it starts at .5 and ends at 12.5 is % because each bin is .5 data units wide. set(gca,'XLim',[.5 12.5]); % This automatically sets the % XLimMode to manual. % Set XTick so that only the integer values that % range from 0.5 - 12.5 are used. set(gca,'XTick',[1:12]) % This automatically sets % the XTickMode to manual. % Set the XTickLabels so that abbreviations for the % months are used months = ['Jan'; 'Feb'; 'Mar'; 'Apr'; 'May'; 'Jun'; 'Jul'; 'Aug'; 'Sep'; 'Oct'; 'Nov'; 'Dec']; set(gca,'XTickLabels',months) |
2 Variable Regression With Transparent Plan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | n=20; % make some random data x = rand(n,1); y = rand(n,1); % with an arbitrary function z = x + 2*y + 3 + randn(n,1)/3; % do the regression coef = [x,y,ones(n,1)]\z % generate a patch xy = [0 0;0 1;1 1;1 0;0 0]; % and get the predictions at those points zpred=[xy,ones(5,1)]*coef; % plot the data in 3d plot3(x,y,z,'ko') grid on box on rotate3d on % plot a patch using patch patch(xy(:,1),xy(:,2),zpred,'r') alpha(0.2) |
RGB to Gray colors
1 2 3 4 5 6 7 8 9 | clear; x = rand(5); subplot(2,1,1); pcolor(x); subplot(2,1,2); h = pcolor(x); C = get(h,'CData'); C_rgb_gray = cat(3,C,C,C); set(h,'CData',C_rgb_gray); |
Projection of mesh contour onto Y face
1 2 3 4 5 6 7 8 9 10 11 | [x,y,z] = peaks; surf(x,y,z); hold on; [c,h] = contour(z,y,x); rotate(h,[0 1 0],-90,[0 0 0]); XLims = xlim; XData = get(h,'XData'); for i = 1 : length(h) sz = size( XData{i} ); set(h(i), 'XData', repmat(XLims(2),sz) ); end |
Full Screen figure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function maxwindow %MAXWINDOW - Maximize figure window % %Syntax: maxwindow screen=get(0,'screensize'); if screen(3)==800 set(gcf,'Units','normalized','Position',[0 0.0467 1.00 0.84]) elseif screen(3)==1024 set(gcf,'Units','normalized','Position',[0.00 0.032 1.00 0.92]) elseif screen(3)==1152 set(gcf,'Units','normalized','Position',[0.00 0.032 1.00 0.89]) elseif screen(3)==1280 set(gcf,'Units','normalized','Position',[0.00 0.032 1.00 0.895]) elseif screen(3)==1600 set(gcf,'Units','normalized','Position',[0.00 0.032 1.00 0.905]) end |
Colormap changing
1 2 3 4 5 6 7 8 | surf(peaks) for i=1:size(colormap,1) M = colormap; colormap(M([end 1:end-1],:)) colorbar drawnow end figure('Units','pixels','Position',[100 100 200 300]) |
Surface fitting
You have a non-uniform collection of measured points (from total station, differential gps, etc.) and you want to plot an interpolated surface. Suppose your points are stored as X, Y, Z. First you build a uniform grid based on the extremities of the measured area:
1 | [Xm, Ym] = meshgrid (Xmin:s:Xmax, Ymin:s:Ymax); |
where s is the grid size. Then you interpolate the surface at all the grid points:
1 | Zm = griddata (X, Y, Z, Xm, Ym); |
Eventually you may plot the surface:
1 | surf(Zi) |

