# I want show population on plot like 36M, 37M....

11 views (last 30 days)
Ghazi on 17 Jun 2024
Commented: John D'Errico on 18 Jun 2024

John D'Errico on 17 Jun 2024
Edited: John D'Errico on 17 Jun 2024
You want the plot to plot each point as a string like 36M, 38M, etc?
Why not just divide by 1e6, then use the axis label to indicate millions?
P = [3.6e7, 3.8e7, 4.1e7, 4.5e7, 5.0e7]; % just making up some numbers
t = 1970:10:2010;
plot(t,P/1e6,'-o')
xlabel Years
ylabel 'Population in Millions'
Could you plot the points as text strings? Well, yes. Easily enough, using the function text. But seriously, why?
Ghazi on 18 Jun 2024
thank you bro
John D'Errico on 18 Jun 2024
You are now asking a completely different question. But that is also clearly a homework assignment, and I last had any desire to do homework at least 35 years ago. Probably longer than that, but I'm not going to count.

Walter Roberson on 18 Jun 2024
Moved: Walter Roberson on 18 Jun 2024
Alternate solution:
P = [3.6e7, 3.8e7, 4.1e7, 4.5e7, 5.0e7]; % just making up some numbers
t = 1970:10:2010;
ax = gca;
plot(ax, t,P,'-o')
xlabel(ax, 'Years')
ylabel(ax, 'Population in Millions')
yticklabels(ax, compose("%gM", floor(ax.YTick/1e6)))
Ghazi on 18 Jun 2024
thank you bro

### Categories

Find more on Annotations in Help Center and File Exchange

R2024a

### Community Treasure Hunt

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

Start Hunting!