如果还使用了Fit、Matlab,请从图例中删除对象

如果还使用了Fit、Matlab,请从图例中删除对象,matlab,plot,legend,Matlab,Plot,Legend,我用Matlab中的“拟合”绘制了数据点,并拟合了它们之间的指数曲线。问题是,使用fit函数,我得到了我想要绘制的拟合线,但在常规标记的基础上还有额外的标记。我解决了这个问题,把想要的标记标在不想要的标记上,这样它们就看不见了。现在来谈谈问题。当我想显示图例时,这些点也在其中。如何在不删除拟合线的情况下从图例中删除标记,因为它们都隐藏在拟合函数中?我可以阻止“fit”绘制不需要的标记吗?所以,我想去掉下图中名为“hoff”的蓝点 您可以通过手动删除您不希望出现在图例中的行的句柄来删除图例条目。试

我用Matlab中的“拟合”绘制了数据点,并拟合了它们之间的指数曲线。问题是,使用fit函数,我得到了我想要绘制的拟合线,但在常规标记的基础上还有额外的标记。我解决了这个问题,把想要的标记标在不想要的标记上,这样它们就看不见了。现在来谈谈问题。当我想显示图例时,这些点也在其中。如何在不删除拟合线的情况下从图例中删除标记,因为它们都隐藏在拟合函数中?我可以阻止“fit”绘制不需要的标记吗?所以,我想去掉下图中名为“hoff”的蓝点


您可以通过手动删除您不希望出现在图例中的行的句柄来删除图例条目。试试这个:

%if you plot something, that you want showing up in the legend, save its handle:
h_line = plot(x,y)
%you dont want to show up this line? dont do anything, just plot it:
plot(myMarker)
%then set the legend-> you can add the text for your legend-entries with 
%a cell-array   containing the strings you want to show up:
legend([h_line another_line],{'Text1' 'Text2'})
通过这个例子(见注释),我得出了这个解决方案:

close all
X=[1:10];
Y=X*0.5+0.1;
ft = fittype('poly2'); 
f = fit(X', Y',ft); 
ha=plot(f)
hold on
hc=plot(X,Y)
hb=errorbar(X, Y, X*0.1, 'squarek','MarkerFaceColor','k','markersize',5)
hleg1 = legend([ha hc],{'hnh','ghg'});
->这只是关于拆分plot命令。希望这有助于

结果应该如下所示:


我已经试过了。问题是,当我绘制拟合线时,我得到了红线和蓝点。我想在我的绘图中有黑色标记和红线。如果我想命名提供拟合线的绘图,蓝色圆点也将在其中。%Generate fitted line:ft=fittype('exp1');f=配合(X',Y',ft);绘图(f,X,Y)误差条(X,Y,误差,'squarek','MarkerFaceColor','k','markersize',5)hleg1=图例('hoff','hnh','ghg');