# How to set the plot start to zero ? I have some measurements. On the x label, they start from 0 to 6, but from 1 I can see something change on

168 views (last 30 days)
Shimelis Abebe on 8 Jul 2021
Answered: Paul Hoffrichter on 12 Jul 2021
##### 8 CommentsShowHide 7 older comments
Paul Hoffrichter on 10 Jul 2021
Dear Shimelis, I am assuming that you wish to discuss this problem further and need additional assistance. Since my time is extremely limited due to work and study obligations, I hope you will ask another question. As a community, we will all take a look and try to help you further.
Best Regards, Paul

Sign in to comment.

### Accepted Answer

Paul Hoffrichter on 9 Jul 2021
Edited: Paul Hoffrichter on 9 Jul 2021
Here is some made up data to illustrate one approach:
x = [ 0 1.1 2 3.3 5.12];
y = [146 145.9 145.8 139 128;
133 132.8 132 114 133;
119 118 116 102 133 ];
plot(x, y, '-bo')
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### More Answers (4)

Sean Brennan on 9 Jul 2021
Like the previous answer said: be sure to plot x values AND y values. MATLAB allows you to plot data in the form:
data = rand(10,1); % Create 10 random points
plot(data); % Plot ONLY the y values - the x-values default to the indices of y
But this plots the data versus its index, in this case from 1 to 10. Yes, this is confusing because the plotting works, but the x-values are missing!
The plot command is normally used with x AND y values. For example, let's say the x-axis values associated with the data are from 0.1 to 1, incrementing by 0.1. Then we can plot the results as:
% Create a column of x data starting at 0.1 up to 1,
% incrementing by 0.1 (the ' symbol converts the row data to column)
xdata = (0.1:0.1:1)';
% Create the random y data column using the rand command
ydata = rand(10,1)
% Plot x versus y
plot(xdata,ydata);
You can modify the plot command, specify a figure, etc. Type "help plot" to learn more about this powerful and probably most often used MATLAB command.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

dpb on 9 Jul 2021
x=[0:size(Throughput,2)-1].'; % generate temporary x vector for convenience from 0
hL=plot(x,1E-6*Throughput(1:4,;).'); % plot first four rows of array as columns
salt to suit.
If there are only 4 rows in Throughput, then can dispense with the indexing expression entirely.
plot() will treat each column in the Y argument if an array as a separate variable; hence the transpose. Saves the explicit reference to have to plot each individually.
See the documentation for plot for all the syntax options; saving the line handles in hL lets you adjust line properties as desired.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

Shimelis Abebe on 9 Jul 2021
Thank you very much for your great help me dear all
Dear Mr Paul Hoffrichter based on your lightful answer I try it semmes what I want but still I dis't geat the heart of my problem.
I wrote the code as given bellow image what is my fualt?
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

Paul Hoffrichter on 12 Jul 2021
First of all, you should be aware that the following two expressions are equivalent:
>> 1:5.12
ans =
1 2 3 4 5
>> 1:5
ans =
1 2 3 4 5
Are you just wanting to label the axis from 0:4 instead of 1:5? If so, then this works:
figure(2)
x = 0:4;
plot(x, Throughput./1e6);
legend('0.5 m/s','1 m/s','1.5 m/s','2 m/s');
xlabel('TTT_{W-L} index (0 sec to 5.12 sec)');
ylabel('Throughput)');
axis([0 5 -inf inf]);
hold off
grid on
box on
The left figure is from your original program. The right figure, is figure(2) from the code in this post.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Categories

Find more on Ground Truth Labeling in Help Center and File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by