How to add a legend for a plot generated with a function multiple times?
6 次查看(过去 30 天)
显示 更早的评论
I am working with orbits around Earth. To plot them, I use a function with the orbital parameters as input. My problem is that I don't know how to create a legend when calling the function more than one time to show on the same plot multiple orbits.
Adding a legend manually like this
plotOrbit(a, e, i, OM, om, th0, thf, dt, mu)
plotOrbit(a1, e1, i1, OM1, om1, th0, thf, dt, mu)
legend("Initial orbit", "Final orbit")
give me a wrong line for the second orbit. (It should be orange instead of a random blue tiny line).
I tried to follow a different approach
txt = 'Initial orbit';
plotOrbit(a, e, i, OM, om, th0, thf, dt, mu, txt)
txt = 'Final orbit';
plotOrbit(a1, e1, i1, OM1, om1, th0, thf, dt, mu, txt)
legend show
Adding this line in the function script
plot3(r(1, :), r(2, :), r(3, :), 'DisplayName',txt, LineWidth=2)
Now the legend shows the right lines, but the result shows 4 extra labels that I don't know how to remove.
ù
Do you know how to solve this? Thank you
2 个评论
Steven Lord
2023-4-14
It's going to be difficult to offer any specific suggestions without seeing what your plotOrbit function is doing.
采纳的回答
Antoni Garcia-Herreros
2023-4-14
编辑:Antoni Garcia-Herreros
2023-4-14
Hello,
As @Steven Lord pointed out it's hard to suggest anything without knowing how plotOrbit works, but you could try something like this:
plotOrbit(a, e, i, OM, om, th0, thf, dt, mu)
plotOrbit(a1, e1, i1, OM1, om1, th0, thf, dt, mu)
l=legend('Initial orbit','','','Final orbit');
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!