Fix the trace in the plot
5 次查看(过去 30 天)
显示 更早的评论
Is there a way somehow to get rid off the cross-line in this traces? For some reason,I am getting this cross-line that I do not want to! Any suggestions? Thanks
1 个评论
回答(3 个)
Star Strider
2016-2-6
Without your data, it’s difficult to say. One way would be to delete the last element of each of your x and y vectors:
x = [1:10 1];
y = randi(9, 1, 10);
y = [y y(1)];
figure(1)
subplot(2,1,1)
plot(x, y) % Original Data
subplot(2,1,2)
plot(x(1:end-1), y(1:end-1)) % Delete Wrap-Around
Run this little code snippet to see the cause and effect of the change.
4 个评论
Star Strider
2016-2-7
Please upload your data, preferably as a .mat file. Without having it to work with, I can only guess as to what the problem is (and thus far, that doesn’t seem to be productive for either of us).
Use the ‘paperclip’ icon to upload it, and then complete both the ‘Choose file’ and ‘Attach file’ steps.
Geoff Hayes
2016-2-6
sally - I suspect that if you are plotting something similar to
plot(x,y)
then some of your x values are out of order (i.e. 5000,5001,6799,6800,5002,5003,etc). For example, if I want to plot the curve
y = x^2;
where x is defined as
x = linspace(-25,25,1000);
which I then re-arrange (or sort out of order) the x values as
x = [x(251:end) x(1:250)];
I will observe the following upon plotting
y = x.^2;
plot(x,y)
I get the same "cross-line" as you! To correct, you can try to sort the x and y values as
data = sortrows([x' y']); % sort on first column
x = data(:,1);
y = data(:,2);
plot(x,y);
which should plot as expected without the undesirable line.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!