图例颜色和标记条目

时间:2013-06-18 15:41:06

标签: matlab plot legend

我有一个基于测试参数定义线属性的图。例如,在下图中,蓝线的值为A = 1,红色的值为A = 2。带点的实线具有B = 10并且用Xs B = 20虚线。当我创建一个图例时,它会为每条线绘制一个条目。我想有一个像这样的传奇:

[蓝色] A = 1
[红色] A = 2
- 。 B = 10
--x B = 20

我有比你下面看到的更多的条目,所以这将节省大量空间。有谁知道这在Matlab中是否可行?

sample plot

更新

这是我尝试过Eitan的答案,没有运气。

figure(2);
plot(1:5,1:5,'b');
hold all;
plot(1:5,1:5,'r');
plot(1:5,1:5,'k.-');
plot(1:5,1:5,'kx--');
h = get(gca,'Children');
M = {'A=1','A=2','B=10','B=20'};
figure(1);
legend(h,M); % This makes the legend appear in Figure 2, but I want it in 1.

1 个答案:

答案 0 :(得分:2)

一种可行的方法是首先以下列方式存储数组h四个句柄,对应四个样本行:

  • h(1)是蓝色实线的句柄。
  • h(2)是红色实线的句柄。
  • h(3)是点划线的句柄。
  • h(4)是点十字线的句柄。

然后将它们与所需的字符串一起送入legend,如下所示:

legend(h, 'A = 1', 'A = 2', 'B = 10', 'B = 20')

编辑:如果你不能获得这四个句柄,也可以分别绘制具有相同图形属性(蓝色,红色,相同的“空”行(坐标为NaN值)。点划线和交叉划线),然后得到他们的句柄。这种方式它们作为lineseries存在,但实际上并没有被绘制。