在 matlab 2016a中添加多个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(P,{'a','b','c'},'location','northwest')
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')
别衬谓立: 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文件直接拷到再下一层你想要的工具箱的文件夹里...