How do I combine legend entries for a spline and data points?

I'm plotting a series of discrete data points and using a 'pchip' spline to create a smooth curve that passes through the points. In the legend I would like it to appear as a line with a marker and not as two separate entries. Is there a way to combine them into a single entry?
Thanks!

 Accepted Answer

Here is an example:
% First set up the data and the spline fit plot.
x = -3:3;
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t);
plot(x,y,'or',t,p,'-b')
L = legend('Fitted Data'); % Pass only final string.
% Now we can fix the legend.
H = findall(gcf,'marker','none','linestyle','none');
set(H,'linestyle','-','color',[0 0 1]);
set(L,'location','east')

3 Comments

Excellent! Thank you much!
I just ran this script from the answer in R2018b since I have a similar problem and it does not work. This is the final result. As you can see it still only labels the red dots in the legend when it should also have a blue line going through it as far as I understand the original question.
CombineLegend.png

Sign in to comment.

More Answers (0)

Asked:

on 16 Oct 2012

Commented:

on 17 Feb 2021

Community Treasure Hunt

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

Start Hunting!