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

116 次查看(过去 30 天)
  8 个评论
Shimelis Abebe
Shimelis Abebe 2021-7-10
Dear Paul Hoffrichter thank you very much and I appreciate any time you give me.
Could please share your email address? here is my email address shmels.gabe@wu.edu.et
Kind regards,
Shimelis.
Paul Hoffrichter
Paul Hoffrichter 2021-7-10
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

请先登录,再进行评论。

采纳的回答

Paul Hoffrichter
Paul Hoffrichter 2021-7-9
编辑:Paul Hoffrichter 2021-7-9
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')

更多回答(4 个)

Sean Brennan
Sean Brennan 2021-7-9
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.

dpb
dpb 2021-7-9
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.

Shimelis Abebe
Shimelis Abebe 2021-7-9
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?

Paul Hoffrichter
Paul Hoffrichter 2021-7-12
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.

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by