2013-04-05 10 views
11

pyplot.hist() dokumentacja określa, że ​​podczas ustawiania zakresu dla histogramu "niższe i wyższe wartości odstające są ignorowane".Tworzenie pierwszych i ostatnich binów pyplot.hist() obejmuje wartości odbiegające

Czy jest możliwe, aby pierwszy i ostatni pojemnik histogramu zawierał wszystkie wartości odstające bez zmiany szerokości pojemnika?

Na przykład, powiedzmy, że chcę przyjrzeć się zakresowi 0-3 z 3 pojemnikami: 0-1, 1-2, 2-3 (zignorujmy przypadki dokładnie równości dla uproszczenia). Chciałbym, aby pierwszy bin zawierał wszystkie wartości od minus nieskończoności do 1, a ostatni do wszystkich wartości od 2 do nieskończoności. Jeśli jednak wyraźnie ustawię te przedziały na zakres, będą one bardzo szerokie. Chciałbym, żeby miały tę samą szerokość. Zachowanie, którego szukam, jest podobne do zachowania hist() w programie Matlab.

Oczywiście mogę numpy.clip() danych i działki, które dadzą mi to, co chcę. Ale jestem zainteresowany, czy istnieje wbudowane rozwiązanie do tego.

+4

Brzmi jak masz rozwiązanie dwuliniowy ('numpy.clip(); pyplot.hist()') i że chcesz jedno-liner. Chociaż myślę, że słowo kluczowe "clip" do 'hist()' byłoby miłe, myślę, że nikt nie zadał sobie trudu, aby to zaimplementować, ponieważ jest tak prosty. Oczywiście zawsze możesz przesłać łatkę do matplotlib :-). – Evert

+1

Tak, @Evert ma rację, klip jest najlepszym rozwiązaniem. Powiedziałbym, że 'pyplot.hist()' nie buduje tego w prawdopodobnie dlatego, że generuje wprowadzające w błąd poletka, jeśli nie jest starannie adnotowane. – askewchan

+0

@Ever ok, dziękuję. Chciałem tylko zobaczyć, że nie brakuje mi lepszego rozwiązania, aby uzyskać takie zachowanie. – Bitwise

Odpowiedz

6

Nie. Patrząc na matplotlib.axes.Axes.hist i bezpośrednie użycie numpy.histogram Jestem dość pewny, że nie ma mądrzejszego rozwiązania niż użycie klipu (innego niż rozszerzanie pojemników z histogramem).

ja zachęcam do spojrzeć na źródło matplotlib.axes.Axes.hist (to po prostu kod Pythona, choć wprawdzie hist jest nieco bardziej skomplikowane niż większość metod osi) - to najlepszym sposobem na sprawdzenie tego rodzaju pytania .

HTH

Powiązane problemy