2017-05-12 1 views
0

i tracé un terrain en 3D avec le code suivant, mais avec mes propres données mesurées:Comment remplir ci-dessous 2d graphes en 3D avec plot3()?

Data = rand(1000, 4); % 4 Channels or more or less 
Time = 1:1000; 
sData = size(Data); 
vSignal = 1:sData(2); 
plot3(Time, vSignal(ones(1, sData(1)), :), Data); 
view(-150, 60)` 

Maintenant, je veux remplir sous les Graphes je plotted.But vraiment important pour une manière que je sois en mesure de tracer et remplissez ci-dessous plusieurs graphiques! Dois-je utiliser fill3()? J'ai importé mes données sous forme de matrice numérique. J'ai essayé plusieurs façons mais j'ai échoué. Merci pour votre aide.

+0

Pouvez-vous nous montrer un diagramme de ce que vous voulez? –

Répondre

1

Voici comment utiliser fill3:

for ii = 1:sData(2) 
    fill3([Time,Time(end),Time(1)],ii*ones(1,size(Time,2)+2),[Data(:,ii);zeros(2,1)],ii*ones(2+size(Time,2),1),'EdgeColor','none'); 
end 

J'utilise la boucle for depuis que je crée un patch pour chaque parcelle séparément (je l'appelle la zone remplie dans un patch). Pour chaque patch, je dois donner ses limites, et fill3 remplira tout entre les deux. Les limites sont les points exacts que vous avez utilisés dans plot3, mais en plus vous avez besoin de deux points supplémentaires sur le plan x-y pour fermer le patch (pour en faire un polygone). C'est la raison pour laquelle je prolonge les vecteurs par 2.

+0

Essayez d'ajouter la commande 'hold on' à la boucle. Cela résout-il votre problème? – Lior