Adding fractions to axis tick marks

25 views (last 30 days)
How do you turn the tick mark labels into fractions rather than decimals. Take the following code for example. I would like the tick mark to remain in their current location but display their associated fraction instead.
x=.1:.1:.5
y=1:5
clf
plot(x,y,'color','r','linewidth',2)
set(gca, 'XTick', [1/16 1/8 3/16 1/4 5/16 3/8 7/16 1/2])

Accepted Answer

Walter Roberson
Walter Roberson on 1 Nov 2016
If you are using R2014b or later, you
set(gca, 'TickLabelInterpreter', 'latex', 'XTickLabel', {'$\frac{1}{16}$', '$\frac{1}{8}$', '$\frac{3}{16}$', '$\frac{1}{4}$', '$\frac{5}{16}$', '$\frac{3}{8}$', '$\frac{7}{16}$', '$\frac{1}{2}$'})
If you are using an earlier version, you could go through some trouble to text() the individual labels in place, because in those earlier versions, individual text() could have an interpreter but TickLabelInterpreter could not be set. So in those earlier versions it would probably be easier to
set(gca, 'XTickLabel', {'1/16' '1/8' '3/16' '1/4' '5/16' '3/8' '7/16' '1/2'})

More Answers (1)

Jan
Jan on 31 Oct 2018
Is it possible to find a soft-code this? So instead of
set(gca, 'TickLabelInterpreter', 'latex', 'XTickLabel', {'$\frac{1}{16}$', '$\frac{1}{8}$', '$\frac{3}{16}$', '$\frac{1}{4}$', '$\frac{5}{16}$', '$\frac{3}{8}$', '$\frac{7}{16}$', '$\frac{1}{2}$'})
I would like to go for a version where
a=[16 8 4 2 1]
set(gca, 'TickLabelInterpreter', 'latex', 'XTickLabel', {'$\frac{1}{a}$'})
So basicly my question is, how to load a variable while writing in a math mode of latex.
  1 Comment
Erik RF
Erik RF on 20 Mar 2021
Yes, try this.
val = 0:0.25:10; % your vector of values in decimal form
[num, den] = rat(num); % convert to rational form
ticks = '$\frac{'+string(enu)+'}{'+string(den)+'}$';
set(gca, 'TickLabelInterpreter', 'latex', 'XTickLabel', ticks)
You can also add more info to each label if you want, for example add pi like this:
ticks = '$\frac{'+string(enu)+'}{'+string(den)+'}\pi$';

Sign in to comment.

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!