2

如何在 Matlab 中限制我的图例?到目前为止,我正在使用如下代码绘制图表:

figure;
hold on;
plot(log(X),7.35,'ro',7.35,log(Y),'bo');
axis([7.3 7.7 7.3 7.7]);
set(gca,'xtick',[7:0.1:7.7])
set(gca,'ytick',[7:0.1:7.7])
title('atheism test file 1')
xlabel('x axis'); ylabel('y axis');
legend show;

其中 X,Y 是 10 个元素的列向量。当我执行“传奇秀”时,它将显示 10 个红色圆圈数据 1、数据 2 等,然后显示 10 个蓝色圆圈。如果我将其修改为 legend('red','blue') 它只会给我两个红色圆圈,分别称为红色和蓝色......

我想要的是只用一个图例来显示 2 个项目,一个我可以命名的红色圆圈和一个蓝色圆圈。

4

2 回答 2

3

分别绘制红色和蓝色,然后明确地标出它们。尝试类似:

ph1 = plot(log(X),7.35,'ro');
ph2 = plot(7.35,log(Y),'bo');
legend([ph1(1), ph2(1)], 'red', 'blue');
于 2013-03-19T15:19:11.150 回答
3

您绘制的实际上是 10 个不同的点log(X)和 10 个不同的点log(Y),因为对于每个绘图,每个轴的输入向量具有不同的大小。只需使它们具有相同的尺寸,如下所示:

plot(log(X), 7.35 * ones(size(X)), 'ro', 7.35 * ones(size(Y)), log(Y), 'bo');

传说会正确地出来。这里不需要hold on(也不需要存储任何图形句柄)。

于 2013-03-19T15:32:13.053 回答