Legend Befehl in Matlab zeichnet falsche Farbe

Gast #4614488
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?
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.