Documentation

Using Mathematical Expressions to Label and Annotate Plots

This example shows how you can display mathematical expressions in your MATLAB® plots.

Creating a Plot

theta = 0:0.1:3*pi; y1 = sin(theta); y2 = cos(theta); figure plot(theta,y1) holdonplot(theta,y2)

Using Mathematical Expressions in Titles and Legends

You can use plain TeX math syntax to create math expressions to display in plot titles and legends. To indicate the start of a TeX expression use a backslash (\) such as '\theta' for the symbol.

legend({'sin(\theta)','cos(\theta)'})% add legendtitle('Plot comparing sin(\theta) and cos(\theta)')% add title

Using Mathematical Expressions In Axis and Tick Labels

You can use mathematical expressions in axis labels.

xlabel('\theta')% add label on x-axisylabel('sin(\theta), cos(\theta)')% add label on y-axis

You can also use mathematical expressions to label individual ticks on an axis.

ax = gca;% get current axisax.XTick = [0 pi 2*pi 3*pi];% set x-axis ticksax.XTickLabel = {'0','\pi','2\pi','3\pi'};% set x-axis labels

Using More Elaborate Mathematical Expressions

MATLAB supports a basic subset of the LaTeX markup language. You can select which mathematical syntax you want to use by setting theInterpreterproperty of a text object. Use$$around the expression to indicate LaTeXdisplay mathmode.

theta = 0:0.01:2*pi; a = 1; b = 0.05; x = (a + b)*cos(theta) - b*cos((a + b)/b*theta); y = (a + b)*sin(theta) - b*sin((a + b)/b*theta);% figureclf plot(x,y) ylabel('$$y(\theta)=(a + b) sin(\theta) - b\,sin({a + b\over b }\theta)$$',...'Interpreter','Latex') xlabel('$$x$$','Interpreter','Latex')

Displaying Text Literally

LaTeX uses certain characters as operators. For example, the underscore (_) character is used to create a subscript. If you want to display text literally (no TeX evaluation), then you can set theInterpreterproperty to 'none'.

clf text(0.5,0.5,'sin(\theta)','Interpreter','none')

If you want to display only part of the text literally, you can use backslash (\) to indicate characters that you do not want to have interpreted.

text(0.5,0.25,'a_b vs a\_b')

Was this topic helpful?