2017-07-14 1 views
0

J'ai cette liste de délais de livraison en jours pour les voitures qui ont 0 ans. La liste contient près de 20 000 jours de livraison avec plusieurs jours répétés. Ma question est comment puis-je obtenir l'histogramme pour montrer les tailles de bacs comme 1 jour. J'ai mis la taille du bac au nombre de jours de livraison uniques là par: len(set(list))La taille des bacs d'histogramme est égale à 1 jour - pyplot

mais quand je produis l'histogramme, la fréquence de 0 jours de livraison est plus de 5000, mais quand je fais list.count(0) il retourne avec 4500.

+0

Si vous utilisez 'pyplot.hist', le mot-clé' bins' peut être passé un 'array' semblable, qui indique les bords bin. Voir la [documentation] (https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.hist.html) pour plus de détails. –

Répondre

0

Comme vous l'avez souligné, len (set (list)) est le nombre de valeurs uniques pour la variable "delivery days". Ce n'est pas la même chose que la taille du bac; c'est le nombre de poubelles distinctes. J'utiliserais la "taille de la poubelle" pour décrire le nombre d'articles dans une poubelle; "bin count" serait un meilleur nom pour le nombre de bacs.

Si vous souhaitez générer un histogramme, en supposant que la liste originale des jours est appelée DAYS_LIST, une approche de haut niveau rapide est:

  1. Faire un nouvel ensemble unique_days = set (DAYS_LIST)
  2. Itérer pour chaque jour de valeur dans unique_days
  3. Pour le jour en cours, définissez la hauteur de la barre (ou la taille de la corbeille) dans l'histogramme pour qu'elle soit égale à days_list.count (jour). Cela vous indiquera le numéro fois la valeur "day" actuelle pour le nombre de jours de livraison est apparu dans la liste des délais de livraison days_list.

Est-ce que cela a du sens?

Si le problème n'est pas que vous calculez manuellement l'histogramme, mais que le pyplot ne fonctionne pas correctement, il serait utile d'inclure du code pour l'utilisation de pyplot.

0

Le nombre de casiers serait déterminé par le nombre de jours jusqu'au nombre maximal de jours possibles.

Say daylist est la liste que vous voulez histogramme (jamais appeler une liste list, parce que écrase la commande python avec le même nom), vous devez utiliser le maximum de cette liste et de créer une gamme de bacs comme

maxi = max(daylist) 
bins = range(0, maxi) 
plt.hist(daylist, bins=bins) 

ou, si vous voulez utiliser numpy,

bins = np.arange(0,np.max(daylist)) 
plt.hist(daylist, bins=bins)