2017-05-11 2 views
2

Matlab R2015b. Ich benutzte den folgenden Code, um das Histogramm zu zeichnen:Zeichnen Sie die vertikale Linie auf dem Histogramm plot Matlab

close all; 
hold on; 
ko = histograms_windows_1_0{7}; 
histogram(ko); 
set(gca,'XLim',[0 30],'XTick',0:5:30); 
xticks = [0;0.16;0.33;0.5;0.66;0.83;1]; 
set(gca,'XTickLabel', xticks) 
xlabel('Seconds'); 
ylabel('Correct Transitions'); 

, dass mir das Bild gibt:

enter image description here

Jetzt möchte ich vertikale Linie zeigt Mittelwert durch die „Sekunden“ Achse hinzuzufügen, I kenne diesen Wert und auch die Standardabweichung. Ähnliches: enter image description here

Ich habe mn und stdv Werte. Ich habe dies versucht:

mn = mean(ko)/30; 
stdv = std(ko)/30; 
hax=axes; 
line([mn mn],get(hax,'YLim')) 
hold off; 

ignoriert aber vorher gezeichnetes Histogramm und vertikale Linie zieht aber nur diese Zeile angezeigt wird, kein Histogramm mehr. Wie kann das erreicht werden?

+0

Nur um Sie wissen zu lassen, werden Mittelwert und Standard nicht dort sein, wo Sie es erwarten. Ihr Histogramm sieht nur ein bisschen wie ein Gaussian aus, aber es ist nicht so. Der Mittelwert ist wahrscheinlich etwas kleiner als 0,5, daher würde die Linie außerhalb des Peaks liegen. Das Gleiche gilt für Std. Sie können sehen, dass Ihr Histogramm nicht die gleiche Verteilung links und rechts hat, daher hilft ein einzelner Wert nicht wirklich. Sie können Mathematik, die für die Gauß-Verteilung relevant sind, nicht auf verschiedene Distributionen anwenden –

+0

Das heißt, versuchen Sie 'histfit', es zeichnet die angepasste Verteilung mit dem Histogramm –

Antwort

4

Das Problem ist die Linie

hax=axes; 

dies ein Objekt neue Achse erzeugt, die die vorhergehende überdeckt.

Die Lösung wird in

hax=gca; 

zu ändern, so dass die nachfolgenden line zur Achse gleichen geht, dass das Histogramm enthält.

Verwandte Themen