Forum: Digitale Signalverarbeitung / DSP / Machine Learning Legend Befehl in Matlab zeichnet falsche Farbe


von Rolf (Gast)


Lesenswert?

Hallo, dieser Skript plottet die Legende falsch. Nämlich werden die in 
grün gezeichneten + in der Legende als rot gezeichnet.

Der Skript soll das Histogramm, Whkdichte,den Mittelwert sowie die 
Mittelwert+- Standartabweichung anzeigen.
1
m1 = mean(y);
2
s1 = sqrt(var(y));
3
Fm1 = 400;
4
Fs1p = 240;
5
Fs1m = 240;
6
vm1 = 0:18:Fm1;
7
vs1p = 0:18:Fs1p;
8
vs1m = 0:18:Fs1m;
9
figure;
10
histfit(y)
11
hold on
12
grid on
13
axis([0.08 0.22 0 700])
14
plot(m1,vm1,'r+')
15
plot(m1-s1,vs1p,'g+')
16
plot(m1+s1,vs1m,'g+')
17
legend('Histogramm','Wahrschlichkeistsdichte','\mu - \sigma', '\mu','\mu + \sigma')


Weiß jemand woran es liegen könnte?

von anderer Rolf (Gast)


Lesenswert?

Liegt an dem array den du hast dein y

von Jan K. (jan_k)


Lesenswert?

Legend guckt einfach nur das aktuelle axes Object an, sucht die children 
von vorne nach hinten ab und gibt den ersten N (in deinem Fall N = 5) 
Kindern in den Farben, wie sie geplottet werden einen Namen.

Vergleiche mal:
1
figure
2
subplot(211)
3
hold all
4
x = 1:5;
5
plot(x, rand(length(x), 3), 'linewidth', 1.5); % plotte 3 verschiedene zufällige Kurven und speichere die handles
6
plot(x,rand(length(x), 2), 'linewidth', 1.5); % 2 weitere
7
legend({'eins','vier','fünf'})
8
9
subplot(212)
10
hold all
11
h = gobjects;
12
h(1:3) = plot(x, rand(length(x), 3), 'linewidth', 1.5); % plotte 3 verschiedene zufällige Kurven und speichere die handles
13
h(4:5) = plot(x, rand(length(x), 2), 'linewidth', 1.5); % 2 weitere
14
legend(h([1 4:5]),{'eins','vier','fünf'})

Im ersten Fall schreibt der halt an die ersten 3 Plots die Legende. Im 
zweiten Fall genau denen, die du ausgewählt hast, indem du die plot 
handles mitgibst.

In deinem Fall passiert das, weil laut 
http://www.mathworks.com/help/stats/histfit.html bei h = histfit(bla) 
ebenfalls zwei handles zurück gegeben werden, einmal der plot handle zu 
deinem histogram h(1) und zu deinem density plot h(2).

Klarer geworden?

Schöne Grüße,
Jan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.