我有一个基于测试参数定义线属性的图。例如,在下图中,蓝线的值为A = 1,红色的值为A = 2。带点的实线具有B = 10并且用Xs B = 20虚线。当我创建一个图例时,它会为每条线绘制一个条目。我想有一个像这样的传奇:
[蓝色] A = 1
[红色] A = 2
- 。 B = 10
--x B = 20
我有比你下面看到的更多的条目,所以这将节省大量空间。有谁知道这在Matlab中是否可行?
更新
这是我尝试过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.
答案 0 :(得分:2)
一种可行的方法是首先以下列方式存储数组h
四个句柄,对应四个样本行:
h(1)
是蓝色实线的句柄。h(2)
是红色实线的句柄。h(3)
是点划线的句柄。h(4)
是点十字线的句柄。然后将它们与所需的字符串一起送入legend
,如下所示:
legend(h, 'A = 1', 'A = 2', 'B = 10', 'B = 20')
编辑:如果你不能获得这四个句柄,也可以分别绘制具有相同图形属性(蓝色,红色,相同的“空”行(坐标为NaN
值)。点划线和交叉划线),然后得到他们的句柄。这种方式它们作为lineseries存在,但实际上并没有被绘制。 的