Matlab中的自定义图例

Matlab中的自定义图例,matlab,legend,Matlab,Legend,这里我有一个for循环来绘制矩阵的内容 根据“类型”值,我确定绘图对象(ks、bO、rX) 我有点困惑,无法找到一种方法将图例放在我的最终图形中,它显示了我自己对每个对象(ks、bO、rX)的解释。默认情况下,MATLAB将看到该循环的输出不是三个绘图,而是许多单独的绘图点。即使某些点使用相同的设置打印,它也不会自动将它们识别为同一系列的一部分。如果给它三个图例条目,它会将它们指定给前三个点所绘制的任何点 解决此问题的最简单方法是更改打印和使用逻辑索引的方式,而不是循环: h=plot(data

这里我有一个for循环来绘制矩阵的内容

根据“类型”值,我确定绘图对象(ks、bO、rX)


我有点困惑,无法找到一种方法将图例放在我的最终图形中,它显示了我自己对每个对象(ks、bO、rX)的解释。

默认情况下,MATLAB将看到该循环的输出不是三个绘图,而是许多单独的绘图点。即使某些点使用相同的设置打印,它也不会自动将它们识别为同一系列的一部分。如果给它三个图例条目,它会将它们指定给前三个点所绘制的任何点

解决此问题的最简单方法是更改打印和使用逻辑索引的方式,而不是循环:

h=plot(data1(type==1,1),data1(type==1,2),'ks'); set(h,'linewidth',2); 
hold on;
h=plot(data1(type==0,1),data1(type==0,2),'bO'); set(h,'linewidth',2);
h=plot(data1(type==-1,1),data1(type==-1,2),'rX'); set(h,'linewidth',2);
现在我们只有三个图,因此给出
legend
这三个图应该可以让我们知道这些图(按照绘制顺序)和标签之间的正确匹配:

legend({'Type 1'; 'Type 0' ; 'Type -1'})

你能用最少的数据集提供一个可重复的例子吗?我不理解类型(k)的条件
type
是内置的Matlab函数吗?它只是一个整数数组,其中包含(-1,0,1)。例如,当它为0时,大写字母“O”将被标绘。所以在图例中,我想举个例子,O代表负值。但我无论如何都找不到在O或X旁边或图例中的正方形旁边拧一个字符串(如描述所示)。关于
图例({'type1';'type0';'type1'})
?它不起作用,它只在type0、type1、type1旁边显示X。谢谢你的建议。
legend({'Type 1'; 'Type 0' ; 'Type -1'})