Legend Befehl in Matlab zeichnet falsche Farbe

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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.