Frage

Ich möchte ein Histogramm mit ungleichen Bins (Intervalle) konstruieren .. Matlab Konstrukt Histogramme nur mit gleichen Behältern, als ob es ein Diagramm ist .. !!!

Bitte helfen Sie mir ... vielen Dank !!

War es hilfreich?

Lösung

Hier ist ein Beispiel:

x = randn(100,1)*3;           %# some random data
e = [-10 -5 -3 -1 1 2 3 20];  %# edges of intervals:  e(i) <= x < end(i+1)
c = histc(x,e);               %# get count in each interval
bar(e, c, 'histc')            %# bar plot
set(gca, 'xlim',[e(1) e(end)])

Ausgang

Andere Tipps

2 Lösungen:

  1. Geben Sie sind Zentren mit der 2. Argument hist .
  2. Geben Sie sind Kanten mit mit das zweite Argument zu histc . Dies Funktion nimmt etwas weiter Verarbeitung, da es nicht der Fall ist erzeugen Sie die Grafik direkt - Folge die Verbindung für ein Anwendungsbeispiel.

Sie können Ihr eigenes Histogramm-Tool bauen ein eigenes Histogramm zu erstellen, wie Sie möchten.

  • histc zu bestimmen, welche Behälter jeder Punkt fällt hinein.

  • Dann nutzen accumarray, um die Anzahl der Elemente in jedem Fach zu zählen.

  • Dann nutzen bar bars Ihrer ausgewählten Breiten zu zeichnen. Oder einfach erstellen Patches der angegebenen Größen. Verwenden Patch für das.

Oder einfacher, nur Gebrauch hist.

hist(rand(1000,1),[0 .1 .3 .6 1])
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top