Legend在matlab中提供了太多数据

时间:2013-03-19 15:15:16

标签: matlab graph vector plot legend

如何在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个蓝色圆圈。如果我修改这个说传说('红色','蓝色')它只给我两个红色圆圈,称为红色和蓝色......

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

2 个答案:

答案 0 :(得分:3)

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

ph1 = plot(log(X),7.35,'ro');
ph2 = plot(7.35,log(Y),'bo');
legend([ph1(1), ph2(1)], 'red', 'blue');

答案 1 :(得分:3)

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

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

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