MATLAB Answers

0

Matlab scatter plot set x-axis and y-axis

Asked by Mohammed Hammad on 13 Feb 2019
Latest activity Commented on by Mohammed Hammad on 14 Feb 2019
I have an array with two columns (date, value) to plot
What I want is to set the labels to show the values on y-axis (e.g 918.5345).
ALso, the x-axis to be just the values on (date) ... (e.g 2002 2003 2004 ...) and not 2002.5 2003.5
I use Matlab R2016a
Screenshot 2019-02-13 at 21.40.34.png
date = [2002 2003 2004 2005 ....] %sometimes 2003 2005 2006 2009 and so on%
value = [918.5345 918.5361 918.5354 ....]
When I plot a scatter as follows:
subplot(3,1,1);
hold on;
scatter(date,value,'+');
grid on
xlabel('Time')
ylabel('Y(m)')
hold off

  0 Comments

Sign in to comment.

Products


Release

R2016a

1 Answer

Answer by Nathan Jessurun on 13 Feb 2019

Take a look at the xticks function:
plot(1:10)
% Only show 1, 5, 10 on the x axis
xticks([1 5 10])
What do you mean by you want to show labels on the y axis? Are you asking for this:
xData = 1:4;
yData = 1:5:20;
scatter(xData,yData);
xticks(xData);
yticks(yData);

  3 Comments

I mean to show labels on the axes as follows:
on X-axis:
the dates (2002 2003 2004 2005) ( without 2002.5, 2003.5)
On Y-Axis:
format of (918.5345 918.5361 ....) not the interval from -4 to 0
Please note that in Matlab version R2016a that I have, the xticks, yticks are not working.
I see that xticks was added in 2016b.
In your case, you can try
xData = 5:10;
yData = 800:200:1800;
scatter(xData,yData);
% Get current axis
fig = gcf;
ax = fig.Children;
ax.XTick = xData;
ax.YTick = yData;
Thanks a lot , it looks more better now.

Sign in to comment.