2017-06-26 4 views
-1

J'utilise quelque chose comme les commandes suivantes pour empiler quatre ensembles de données et les tracer en utilisant bar3 dans matlab. Comment puis-je définir une couleur et une légende différentes pour chaque pile de données?couleur et légende dans bar3 matlab

Figure ci-jointe.

figure(100); 

for i=1:4 
    bar3(data.matrix{i}) 
    hold on; 
end 

figure

Répondre

0

A propos colorisation chaque barre, la solution serait:

Y=[ 1 2 3 ; 4 5 6 ; 3 4 5]; 
h = bar3(Y); 
cm = get(gcf,'colormap'); % Use the current colormap. 
cnt = 0; 
for jj = 1:length(h) 
    xd = get(h(jj),'xdata'); 
    yd = get(h(jj),'ydata'); 
    zd = get(h(jj),'zdata'); 
    delete(h(jj))  
    idx = [0;find(all(isnan(xd),2))]; 
    if jj == 1 
     S = zeros(length(h)*(length(idx)-1),1); 
     dv = floor(size(cm,1)/length(S)); 
    end 
    for ii = 1:length(idx)-1 
     cnt = cnt + 1; 
     S(cnt) = surface(xd(idx(ii)+1:idx(ii+1)-1,:),... 
         yd(idx(ii)+1:idx(ii+1)-1,:),... 
         zd(idx(ii)+1:idx(ii+1)-1,:),... 
         'facecolor',cm((cnt-1)*dv+1,:)); 
    end 
end 
rotate3d 

source and additional information here

Remarque: Matlab aide sur des parcelles BAR3 est here