在 matlab 2016a中添加多个legend出现错误

作者&投稿:刁烟 (若有异议请与网页底部的电邮联系)
MATLAB中legend总是出错,即使如下面的小程序都出错,请大神们帮忙解决一下,万分感谢。~

主要是图例的位置参数有错,程序可改为:
x = -pi:pi/20:pi;
plot(x,cos(x),'-ro',x,sin(x),'-.b')
h = legend('cos x','sin x','Location','NW');

把绘图函数中的内容合并在一起就可以了解决legend显示问题。即
plot(R,Nre,'-b',R,Nbe,'*r',R,N_dark_TL,'*g','LineWidth',2);grid on;

试一下,把那个legend用大括号括起来.如
legend(P,{'a','b','c'},'location','northwest')

  1. matlab2014版本之前可用copyobj复制但是2014 及以上版本无法继续使用
    如果强行用,应该加上对应的axes.
    A.copyobj(h,fnew); 复制对象h到figure-fnew中
    B.强行用则必须加上坐标轴
    L = legend('show'); % legend
    ax1 = gca;
    copies = copyobj([L,ax1],fnew);
    (没用过,可能会出一些好玩的错误,尝试调调应该也挺好玩的)

2.2014 及以上版本正确姿势应该是这样吧
思路:2014以上版本只允许一个axes一个legend → 一个figure同一位置搞2个axes,第二个axes仅画legend并设置透明色。同时图显
例子如下(重点实现部分加粗)

clc

clear

a = 1:5

b = 7:9

x = -1:0.1:2;

x = repmat(x',1,8);

for i = 1:8

y(:,i) = 0.4 * x(:,1) + 0.1*i;

end

color = {[224 51 57];[217 70 37];[236 166 68];[247 236 46];[178 181 76];[65 124 76];[90 125 119];[32 123 214]};

shape = {'o','s','d','v','^','<','>','P'};

%%

% plot绘图

for i = 1:( length(a) + length(b) )

    p(i) = plot(x(:,i),y(:,i),'LineStyle','none','Marker',shape{i},'MarkerSize',5,'MarkerEdgeColor',color{i}/255,'MarkerFaceColor',color{i}/255);

    hold on

end

%%

%坐标轴范围

ax1 = gca;

xlim(ax1,[-1 2]);

ylim(ax1,[-1 2]);

%%打标--legend的标签L1为第一legend标签L2为第二标签

L1 = cell( size( 1:length(a) ) );

for n1 = 1:length(a)

L1{n1} = num2str( a(n1) );

end

L2 = cell( size( 1:length(b) ) );

for n2 = 1:length(b)

L2{n2} = num2str( b(n2) );

end

%%

%第二axes

ax2 = axes( 'Position',get(ax1,'Position'),'Xlim',[-1 2],'Ylim',[-1 2],'Visible','off','color','none'); %ax2与ax1横纵坐标范围对应

%%

%画两个legend

Leg1 = legend( ax1,p(1:n1),L1 );

Leg2 = legend( ax2,p(n1+1:n1 + n2),L2,'color','none' );

%%

%可选项

%取消legend边框

set(Leg1,'Box','off');

set(Leg2,'Box','off');

%设置figure边框

set(ax1,'box','on')

set(ax2,'box','on')




黄埔区13068424089: 如何在matlab中增加新的函数. -
别衬谓立: 1、编写函数,按照function格式编写后保存到某一文件夹,可以是自己给定的某个路径的文件夹. 2、添加路径,打开MATLAB窗口,依次点击file- set path...--- Add folder 添加刚才存放MATLAB函数的文件夹后保存(save). 3、调用函数,为了测试是否成功,调用函数算一遍就行.

黄埔区13068424089: 如何应用Matlab 2016a 新添加的deep learning -
别衬谓立: 3.三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂上颜色.surf函数用缺省的着色方式对网格片着色.除此之外,还可以用shading命令来改变着色方式.shading faceted命令将每个网格片用其高度对应的颜色进行着色,...

黄埔区13068424089: 如何在matlab2016a配置VLfeat -
别衬谓立: 解决方案1.下载vlfeat,但是vlfeat目录中并没有编译好的mex文件,需要在vs2010中编译.修改 ARCH=win64 为 ARCH=win32.修改makefile.mak文件中的路径,把vc++与matlab的路径全部修改为本机的路径.重新rebuild.2.在matlab中配置vlfeat 找到目录,vlfeat/toolbox/,运行vl_compile.m.运行vl_setup.m,即可在matlab中配置vlfeat.

黄埔区13068424089: 在MATLAB中不等号怎么输入 -
别衬谓立: 1、首先打开我们的matlab软件,我使用的是matlab r2016a的版本. 2、在“插入”选项下,点选“符号”,进入符号选择界面. 3、在“符号”设置中的“子集”选择“数学运算符”. 4、在“符号”设置中的“子集”选择“数学运算符”. 5、我们还能通过各类输入法的特殊符号来实现,进入输入法的特殊符号. 6、在数字/单位选项下,找到不等号,点击即插入文本. 7、我们还能直接在输入法输入budengyu,就可以出现≠.

黄埔区13068424089: 如何在matlab工具箱中添加自定义函数 -
别衬谓立: 如何在matlab工具箱中添加自定义函数 工具箱就是函数的集合吧,没有啥特殊的.把函数文件全部放到一个文件夹里,那后将该文件夹拷贝到matlab的toolbox文件夹下(在matlab安装路径中找),最后将该文件夹路径添加到matlab路径中(手动的话在preferens里设置,命令的话用addpath),就可以在任意位置使用这些函数了.

黄埔区13068424089: 怎样在matlab中添加外部软件包? -
别衬谓立: 在命令窗口中输入matlabroot 回车 会输出工具箱的路径 然后打开这个路径,将工具箱放进去 在Matlab中如下操作,File——>Set Path...——>点击Add with subfolders... 选择你放进去的工具箱 确定 试一下

黄埔区13068424089: 怎么用MATLAB2016a建立.m文件及运行
别衬谓立: 01打开MATLAB2016a,点击新建,如图.02在新建的脚本文件中输入disp('输出字符串Hello World!'),如图.03点击保存为shu.m文件,如图.04点击运行,这样就成功的输出字符串:输出字符串Hello World!End

黄埔区13068424089: 如何在matlab数组中添加新元素
别衬谓立: k = [0,0,0,k] 在你需要的地方添加就行了. 比如,在末尾添加 k = [k,10] 或者k(end+1) = 10; 在中间添加: k = [k(1:5),5.5,k(6:end)] 这是matlab中对矩阵最基本的操作了.

黄埔区13068424089: 如何在matlab中添加工具包 -
别衬谓立: 将软件包考到Toolbox文件夹里, 然后开启Matlab, 在setpath中设置你要加载的软件包为路径, 之后就可以调用了

黄埔区13068424089: 怎么在matlab中添加新的工具箱及遇到的问题解决 -
别衬谓立: 1、将下载的svm工具箱添加至matlab安装目录下 1、单独下载的工具箱 2、把新的工具箱拷贝到某个目录(我的是D:\soft\matlab2011b\toolbox). 注意:你要是添加的很多个m文件,那就把这些m文件直接拷到再下一层你想要的工具箱的文件夹里...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网