2012-08-25 39 views

回答

1

这里是我终于想出了一个代码:它足够灵活的几乎任何应用:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%  Legend Generator  %%%%%%%%%%%%%%%%%%%%% 
%% NAME  : LEGEND_GENERATOR.m 
%% FUNCTION : Generates a single plot for arbitrary legend 
%% INPUTS : set of markers and related texts as cell and figure number 
%% OUTPUTS : No output 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%      %%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%  AUG 28, 2012  %%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

function LEGEND_GENERATOR(Marker,text,Fignum,FONTSIZE,MARKERSIZE,LWD) 

% clc;clear;close all;fclose all 
% Marker = {'r -*' , 'b -o' , 'g --d'}; 
% text = {'First Fun ' , 'Second Fun ' , 'Third Fun ' }; 
% FONTSIZE = 6; 
% Fignum = 26; 

if length(Marker)~=length(text) 
    error('You should have the same number of markers as texts'); 
end 

%% FIGURE 
set(0,'defaultaxesfontsize',FONTSIZE); 
figure(Fignum);clf;hold on;set(gcf,'OuterPosition',[60 90 200 250],'PaperPositionMode','auto'); 


Leg_TEXTS = []; 
for i = 1:length(Marker) 
x = 0:0.1:2*pi; 
y = 3*randn(1)*sin(x); 
p = plot(x,y,Marker{i},'MarkerSize',MARKERSIZE,'LineWidth',LWD); 
Leg_TEXTS = [ Leg_TEXTS ; {text{i}} ]; 
end 


legend(Leg_TEXTS); 
figure(Fignum); 
set([gca;get(gca, 'children')], 'visible', 'off'); 

end 
2

我试图做同样的事情,但我没有成功。我最终做的是从图例中删除一些情节元素。例如:

h = plot(x,y); 
hasbehavior(h,'legend', false); 

这是另一个example

0

您可以随时隐藏坐标轴及其所有子:

figure(1), clf, hold on 

x = 0:0.1:2*pi; 
y = sin(x); 

p = plot(x,y); 
legend('Sin(x)'); 

set([gca get(gca, 'children')], 'visible', 'off'); 
+0

比你高,这一个人会做这项工作 –