matlab上将三个点设置legend和线分别设置legend应该用哪个代码命令,想达成的效果如图所示。谢谢!
这种情况一般是图外面额外添加有(或者是其他方法,反正找单点就行)这三个形状的单点,这个图例是这三个额外点的,而不是这三条线上的点的。
然后直接legend就好了
如果有许多线,为了对每个线所代表的含义加以描述,就需要添加图例进行说明,此时需要用到函数legend legend函数需要每个线条的句柄和对应的文字作为输入,因此plot返回的句柄一定要记录下来
figure
set(gcf,'color','w');
size_y = size(y);
hold on
x_temp = x(1:2:end);
y_temp = y(:,1:2:end);
for i=1:size_y(1)
plot_style = strcat('-',marker_style{i,1});
handle_plot(i) = plot(x_temp,y_temp(i,:),plot_style);
set(handle_plot(i),'color',[rand rand rand]*0.85);%乘以0.85是为了随机颜色更深一点
set(handle_plot(i),'lineWidth',2);
text_legend{i} = sprintf('曲线%d',i);
end
legend(handle_plot,text_legend,0);
grid on
xlabel('x轴');
ylabel('y轴');
title('标题');
此例中,text_legend 和plot_handle用于保存句柄和文字,由于matlab中文字用向量连接会自动合并,因此,这里文字需要用cell来存储
legend默认是右上角,若需要控制位置,可以在legend的第三个参数设置。
legend(plot_handle,text_legend,0);
代表图例放置在右下,数值可以从0到4,还有-1,他们的含义是:
0:自动把图例置于最佳位置,即和图中的曲线重复最少,此时,没改变一次大小,图例都会重新选择一次最佳位置;
-1:置于坐标轴外面的右上角;
1:置于图形右上角,为默认值;
2:置于图形左上角;
3:置于图形左下角
4:置于图形右下角