How to plot different length vectors
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I need to plot different orbits in one figure.
The coordinate vectors are result of a Runge-Kutta 7-8 so I can't know if the number of elements from each orbit coordinates are the same (maybe one has 2000 points and another 2500 or so.
When I try to plot them all together, the result is that I get only the last figure.
My code is:
C=C1;
[ resu1 ] = nInt( fun , ab , tspan, titol, rotulacio,C );
C=C2;
[ resu2 ] = nInt( fun , ab , tspan, titol, rotulacio,C );
C=C3;
[ resu3 ] = nInt( fun , ab , tspan, titol, rotulacio,C );
rD1=resu1(2,:)./d;
rpD1=resu1(4,:)./d;
rD2=resu2(2,:)./d;
rpD2=resu2(4,:)./d;
rD3=resu3(2,:)./d;
rpD3=resu3(4,:)./d;
plot (rD1,rpD1,rD2,rpD2,rD3,rpD3)
title('rp/d vs r/d');
xlabel('r/d');
ylabel('rp/d');
I just get rD3 vs rpD3. Where is my mistake?
Thanks.
0 个评论
采纳的回答
Walter Roberson
2015-7-16
When you plot() multiple pairs of values and your plot appears to have only a single output, then one possibility is that your lines are all the same to within drawing scale, that the lines are right on top of each other to within the resolution of the screen.
Sometimes zooming in can show the differences between the lines. Sometimes using different markers for the lines can help show that they are all there. Sometimes using different line styles can help (e.g., a solid line would be visible in the gaps of a dashed line)
For testing purposes, try
subplot(1,3,1)
plot(rD1,rpD1)
subplot(1,3,2)
plot(rD2,rpD2)
subplot(1,3,3)
plot(rD3,rpD3)
if all three lines appear and have the same shape then they would have been on top of each other with the single plot() call.
4 个评论
Walter Roberson
2015-7-16
I extracted the data from the figures. When I plot them on the same plot they are distinct.
f4 = hgload('4.fig');
f4ax = findobj(f4,'type','axes');
f4L = findobj(f4ax, 'type', 'line');
f4x = get(f4L,'xdata');
f4y = get(f4L,'ydata');
close(f4);
f7 = hgload('7.fig');
f7ax = findobj(f7,'type','axes');
f7L = findobj(f7ax, 'type', 'line');
f7x = get(f7L,'xdata');
f7y = get(f7L,'ydata');
close(f7);
nf = figure();
nax = axes('Parent', nf);
plot(nax, f4x, f4y, 'b', f7x, f7y, 'r');
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/183564/image.jpeg)
The blue part is not visible to the left because the values are essentially identical to the red values which was drawn on top of it.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Visual Exploration 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!