MATLAB Programming/Axis Handle

From Wikibooks, open books for an open world
Jump to navigation Jump to search

MATLAB offers incomparable control over the way you can add details to your plot. From inserting text at the right positions to labelling the axes, MATLAB from the command line offers you an easy way to create publication style graphics. With support for Encapsulated PostScript and Adobe Illustrator output. Complex figures with several axes and conveying large amounts of information can be created.

Concept of a handle[edit | edit source]

Most operations on figures generate objects with a set of properties. Users familiar with object-oriented programming would realize that the functions and the data are encapsulated into the object. A typical figure would contain at least half a dozen objects. These objects are called handles. A very tacky analogy would be like handles to several different refrigerators with several different contents. To provide an intuitive feel. I have listed out the properties from a text handle.

Finding a handle[edit | edit source]

Various commands provide required handles, for example:

h = gcf; % Get current figure
h = gca; % Get current axis

Examples[edit | edit source]

Axis Label[edit | edit source]

xlabel labels the x-axis of the current plot.

xlabel('string')

You can display text on two lines or insert the value of variables

xlabel({['First Line or line n° ',int2str(a)],['Second Line or line n°',int2str(b)]})

ylabel labels the y-axis of the current plot. It works in same way of xlabel, but the output is vertical in 2D plots.

Documenting a Maximum Value[edit | edit source]

% Previous code set the x value of the peak data point into x_peak 
plot(lags(1:1000:end),abs_cs(1:1000:end)); 
ptitle = 'UUT and Source Correlation Score Magnitude'; 
xlabel('Lag'); ylabel('Correlation Magnitude'); 
title(ptitle); yloc = max(get(gca,'YLim')); 
% Put at top of plot 
text(lags(x_peak),yloc,[' \leftarrow ' num2str(x_peak) 'ns']);
lstr{1} = sprintf(' Test %d', TESTNUM); lstr{2} = sprintf(' Unit %d%s', UNITNUM, comparestr); 
text(lags(1),mean(get(gca,'YLim')),lstr);