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

: Bearbeitet durch User
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.