图例在matlab中给出的数据太多

图例在matlab中给出的数据太多,matlab,graph,vector,plot,legend,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'); legen

如何在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个蓝色圆圈。如果我把它改成图例(‘红色’,‘蓝色’),它只会给我两个红色的圆圈,叫做红色和蓝色


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

分别绘制红色和蓝色,然后明确标注它们。尝试以下方法:

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

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

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

传说会很好地展现出来。这里不需要
等等
(也不需要存储任何图形句柄)。

太好了,谢谢你,“1(尺寸(x))”到底是做什么的?“对不起,我已经很久没有使用matlab了。@gray_fox
ones(大小(X))
创建了一个与
X
尺寸相同的数组。