2 votes

Deux graphiques de séries temporelles et ombrage entre elles...MATLAB

Je suis en train d'utiliser MATLAB pour tracer deux lignes d'une série temporelle... (une ligne minimale et maximale)

Les points convergent en un seul point à la fin des données.

J'essaie de remplir la zone entre les lignes, puis de tracer d'autres lignes au-dessus de la zone ombragée.

Voici mon problème :

Lorsque j'utilise "fill", cela fait exactement ce que je veux... mais cela trace une ligne du dernier point des données jusqu'au point de données initial. Comment puis-je m'en débarrasser ?

Voici un croquis très vague de mes 2 exemples :

image

image2

La ligne en dessous du graphique est ce dont je parle...

Des idées pour éviter cela ?

Merci !

4voto

Jonas Points 54073

Je suppose que vous créez le remplissage avec

fill([xData1;xData2],[yData1;yData2])

xData1 est un tableau de x-données de taille n par 1 pour votre première courbe. Cela entraînera un polygone de forme étrange car les "coins" du polygone ne sont pas correctement ordonnés.

Au lieu de cela, vous devriez faire

fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1)])

c'est-à-dire inverser l'ordre de l'un des deux ensembles de données.

3voto

Amro Points 72743

Comme @Jonas l'a expliqué (m'a devancé), vous devez ordonner correctement les données des deux séries chronologiques. Permettez-moi d'ajouter un exemple à cela :

%# première série
x1 = linspace(pi/4, 5*pi/4, 100);
y1 = cos(x1);

%# deuxième série
x2 = linspace(pi/4, 5*pi/4, 100);
y2 = sin(x2);

subplot(121), fill([x1 x2], [y1 y2], 'r')
subplot(122), fill([x1 fliplr(x2)], [y1 fliplr(y2)], 'r')
hold on
plot(x1,y1, 'Color','b', 'LineWidth',3)
plot(x2,y2, 'Color','g', 'LineWidth',3)

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X