2017-03-11 23 views
23

Sporządziłem histogram w Jupyter (Python 2) i spodziewałem się zobaczyć kontury moich prętów, ale tak nie jest.Zarys histogramu w Pythonie

enter image description here

używam następujący kod:

import matplotlib.pyplot as plt 
from numpy.random import normal 
gaussian_numbers = normal(size=1000) 
plt.hist(gaussian_numbers) 
plt.title("Gaussian Histogram") 
plt.xlabel("Value") 
plt.ylabel("Frequency") 
plt.show() 
+2

dla mnie działa kod, linie istnieją. Czy zmodyfikowałeś domyślną szerokość linii? Po drugie, edgecolor może być taki sam jak kolor paska. (spróbuj zadzwonić: plt.hist (gaussian_numbers, linewidth = 1, edgecolor = 'r') – Joma

+7

Powód, niektórzy ludzie domyślnie widzą kontury, a inni nie, jest to, że używają różnych wersji matplotlib. 2.0 podczas gdy Joma i @James używają matplotlib 1.5.Korzystanie z 'edgecolor =" k "' rzeczywiście przywraca linie w matplotlib 2.0. – ImportanceOfBeingErnest

Odpowiedz

41

to wygląda albo Twoja linewidth został ustawiony na zero lub Twój edgecolor została ustawiona 'none'. Matplotlib zmienił ustawienia domyślne dla tych w wersji 2.0. Spróbuj użyć:

plt.hist(gaussian_numbers, edgecolor='black', linewidth=1.2) 

enter image description here

+0

Zobacz też komentarz @ImportanceOfBeingErnest dlaczego tak jest. –

+0

Skąd wiesz o 'edgecolor'? W [dokumentacji] (https://matplotlib.org/api/_as_gen/matplotlib.pyplot.hist.html) nie ma o tym mowy. – Atcold

+0

W twoim linku do dokumentacji ostatnia sekcja to "Inne parametry", która zawiera " ** kwargs' .Połączenie obok 'kwargs' to dokumentacja łaty. Oznacza to, że każdy parametr, który można zastosować do łatki, może być przekazany jako argument kluczowy do' hist', w tym 'edgecolor' – James