2

我有一个图,它根据测试参数定义线属性。例如,在下图中,蓝线的值为 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.
4

1 回答 1

2

一种可能的方法是首先h按以下方式将对应于四个样本行的四个句柄存储在一个数组中:

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

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

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

编辑:如果您无法获得这四个句柄,也可以分别绘制具有NaN相同图形属性(蓝色、红色、点划线和交叉划线)的“空”线(具有坐标值),然后得到他们的把手。这样,它们作为线条存在,但实际上并没有被绘制出来。

于 2013-06-18T15:51:50.220 回答