A hisztogram diagram a plt.hist ()

Python-Newbie vagyok, és fel akarok rajzolni egy -0,2 és 0,2 közötti értéklistát. A lista így néz ki

[...-0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01501152092971969, -0.01489985147131656, -0.015833709930856088, -0.015833709930856088, -0.015833709930856088, -0.015833709930856088, -0.015833709930856088...and so on]. 

A statisztikákban megtanultam adataimat osztályokba csoportosítani, hogy hasznos diagramot kapjak egy hisztogramhoz, ami ilyen nagy adatok.

Hogyan adhatok osztályokat a pythonba a plotomhoz?

A kódom

plt.hist(data) 

és a hisztogram úgy néz ki, hogy ide írja be a kép leírását

De úgy kell kinéznie, hogy mg src = “https://i.stack.imgur.com/k5rwR.png” alt = “ide írja be a kép leírását” title = “Csak egy példa – a méretarányok különböznek!”>

Megjegyzések

  • Ez nem világos. Kérdezi az adatok csoportosítását vagy a csoportosított adatok ábrázolását?
  • @ Stephen Rauch: Az adatok csoportosítását kérem a plt.hist () vagy más módon. Az adatok csoportosítása után meg akarom valósítani a cselekményt. @ Media: plt.hist (cum_returns_10_5, bin = tartomány (min (cum_returns_10_5), max (cum_returns_10_5) + binwidth, binwidth)) NameError: név ' binwidth ' nincs meghatározva plt.hist (adatok, tárolók = tartomány (perc (adatok), max (adatok) + bin szélesség) , a tároló szélessége)) A megoldás hibát eredményez (lásd fent).
  • Nem szabad ezt az információt válaszba foglalnia. Megjegyzéseket fűzhet, szerkesztheti kérdését, vagy mindkettőt.
  • Üdvözöljük a @Tom közösségben, használjuk a megjegyzéseket. nem működik, mert be kell állítania őket. ezek jellegzetes változók szemléltetés céljából, helyettük értékeket kell beállítania.
  • Köszönjük ezt a tippet @Media! @Stephen Rauch: Olyan kedves lennél, és kommentálnál, hogy csoportosítod-e a pythonban az adatokat, amelyek listába vannak írva, hogy megrajzolhatók legyenek? Köszönöm a segítséget 🙂

Válasz

A hisztogramja érvényes, de túl sok bin van ahhoz, hogy hasznos.

Ha egyforma távolságban lévő kukákat szeretne, akkor egyszerűen továbbíthatja ezt a számot a bins argumentumon keresztül plt.hist, pl .:

plt.hist(data, bins=10) 

Ha azt szeretné, hogy a kukák meghatározott élekkel rendelkezzenek, átadhatja ezeket listaként a :

plt.hist(data, bins=[0, 5, 10, 15, 20, 25, 30, 35, 40, 60, 100]) 

Végül meghatározhat egy módszert is a kuka éleinek automatikus kiszámításához, például auto (a rendelkezésre álló módszereket a numpy.histogram_bin_edges dokumentációja határozza meg):

plt.hist(data, bins="auto") 

Teljes kódminta

import matplotlib.pyplot as plt import numpy as np # fix the random state for reproducibility np.random.seed(19680801); # sum of 2 normal distributions n = 500; data = 10 * np.random.randn(n) + 20 * np.random.randn(n) + 20; # plot histograms with various bins fig, axs = plt.subplots(1, 3, sharey=True, tight_layout=True, figsize=(9,3)); axs[0].hist(data, bins=10); axs[1].hist(data, bins=[0, 5, 10, 15, 20, 25, 30, 35, 40, 60, 100]); axs[2].hist(data, bins="auto"); 

írja ide a kép leírását

Válasz

Meg kell adnia a kuka méretét , ha én “v kitaláltam a kérdést. Amint azt itt megfogalmaztuk.

Megadhat egy listát a kuka határaival.

plt.hist(data, bins=[0, 10, 20, 30, 40, 50, 100]) 

Ha csak egyenlő eloszlást szeretne, egyszerűen használhatja a tartományt:

plt.hist(data, bins=range(min(data), max(data) + binwidth, binwidth)) 

Megteheti pillantás ide és ide .

Megjegyzések

  • Ha azt szeretné, hogy egyenlően legyenek elosztva, van egy egyszerűbb módszer is: ahelyett, hogy argumentumként megadná a bin határait, csak mondja meg a matplotlib-nek, hogy hány bin-t szeretne, pl. plt.hist(data, bins=20).
  • @Xavier Köszönjük válaszát, gondolom, érdemes elküldenie a válaszát. Mint észrevehette, a kérdés még nincs lezárva 🙂

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük