Olen Python-Newbie ja haluan piirtää luettelon arvoista välillä -0,2 – 0,2. Luettelo näyttää tältä.
[...-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].
Tilastoissa olen oppinut ryhmittelemään tietoni luokkiin saadaksesi hyödyllisen käyrän histogrammille, joka riippuu niin suuresta data.
Kuinka voin lisätä luokkia pythonissa tontilleni?
Koodini on
plt.hist(data)
ja histogrammi näyttää siltä, että
Mutta sen pitäisi näyttää mg src = ”https://i.stack.imgur.com/k5rwR.png” alt = ”kirjoita kuvan kuvaus tähän” title = ”Vain esimerkki – asteikot ovat erilaisia!”>
Kommentit
- Tämä on epäselvää. Kysytkö, miten tiedot ryhmitellään tai miten ryhmitelty data piirretään?
- @ Stephen Rauch: Pyydän tietojen ryhmittelemistä plt.hist (): lla tai muulla tavalla. Tietojen ryhmittelyn jälkeen haluan toteuttaa juoni. @ Media: plt.hist (cum_returns_10_5, bin = alue (min (cum_returns_10_5), max (cum_returns_10_5) + binwidth, binwidth)) NameError: nimi ' binwidth ' ei ole määritelty plt.hist (data, bin = alue (min (data), max (data) + binwidth) , roskakorin leveys)) Ratkaisusi tuottaa virheen (katso yllä).
- Sinun ei pitäisi lisätä näitä tietoja vastaukseen. Voit kommentoida, muokata kysymystäsi tai molempia.
- tervetuloa yhteisöön @Tom, käytä kommentteja. syy ei toimi, että sinun on määritettävä ne. ne ovat tyypillisiä muuttujia havainnollistamista varten, sinun on asetettava arvot niiden sijasta.
- Kiitos vihjeestä @Media! @Stephen Rauch: Olisitko niin ystävällinen ja kommentoitko, ryhmitteletkö pythonissa tietoja, jotka on kirjoitettu luetteloon, jotta ne voidaan piirtää? Kiitos avustasi 🙂
Vastaa
Histogrammisi on kelvollinen, mutta siinä on liian monta alusta hyödyllinen.
Jos haluat useita samansuuntaisia säiliöitä, voit yksinkertaisesti välittää kyseisen numeron bins
-argumentin kautta plt.hist
, esim .:
plt.hist(data, bins=10)
Jos haluat, että roskakorissasi on tietyt reunat, voit välittää ne luettelona osoitteeseen bins
:
plt.hist(data, bins=[0, 5, 10, 15, 20, 25, 30, 35, 40, 60, 100])
Lopuksi voit määrittää myös menetelmän roskakorien laskemiseksi automaattisesti, kuten auto
(käytettävissä olevat menetelmät on määritelty -dokumentaatiossa numpy.histogram_bin_edges
):
plt.hist(data, bins="auto")
Täydellinen koodinäyte
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");
Vastaa
Sinun on määritettävä roskakorin koko , jos minä ”v tajusin kysymyksen. Kuten täällä todettiin.
Voit antaa luettelon roskakorin rajoista.
plt.hist(data, bins=[0, 10, 20, 30, 40, 50, 100])
Jos haluat vain, että ne jakautuvat tasaisesti, voit käyttää aluetta:
plt.hist(data, bins=range(min(data), max(data) + binwidth, binwidth))
Voit myös ottaa vilkaise täällä ja täällä .
kommenteissa
- Jos haluat, että ne jakautuvat tasaisesti, on yksinkertaisempi tapa: kerro matplotlibille sen sijaan, että annat argumenttina lokeron rajat, kuinka monta roskia haluat, esim.
plt.hist(data, bins=20)
. - @Xavier Kiitos vastauksestasi, ehkä haluat ehkä lähettää vastauksesi. Kuten olet ehkä huomannut, kysymystä ei ole vielä suljettu 🙂