2016-05-11 13 views
4

Beispieldaten können here im CSV-Format gefunden werden.Warum fügen Pandas Leerzeichen in mein Histogramm ein?

den folgenden Code Gegeben:

figure() 
grp.vis.plot(kind='hist', alpha=.5, normed=True) 
show() 

ich folgendes Bild erhalten:

enter image description here

Warum ist Pandas Einführungs Lücken in der Figur? Die Werte reichen von 0 bis 7 und sind alle dargestellt, daher sehe ich keinen Grund, warum dies passieren sollte.

Vielen Dank im Voraus!

Antwort

4

Da Parameter bins mit Standardwert 10 ist in hist:

grp.vis.plot(kind='hist', alpha=.5, bins=7, normed=True) 

graph

Wenn rwidth auslassen:

grp.vis.plot(kind='hist', alpha=.5, bins=7) 

graph1

Docs:

bins: integer oder array_like, optional

Wenn eine ganze Zahl gegeben ist, bins + 1 sind Kanten zurückgegeben werden, konsistent mit numpy.histogram() für numpy Version> = 1.3.

Ungleichmäßig beabstandete Behälter werden unterstützt, wenn Behälter eine Sequenz ist.

Standardwert ist 10

rwidth: Skalar oder keine, optional

Die relative Breite der Balken als ein Bruchteil der Behälterbreite. Wenn Keine, wird die Breite automatisch berechnet.

Wird ignoriert, wenn histtype 'step' oder 'stepfilled' ist.

Standard ist keine

+0

Beachten Sie, dass das Bild etwas anderes gibt als beabsichtigt. Probieren Sie einfach: grp.vis.value_counts() –

1

Es tut uns ein bisschen vom Thema Eigenwerbung, aber vielleicht könnten Sie meine Bibliothek physt nützlich (siehe https://github.com/janpipek/physt) finden. Unter anderem bietet es verschiedene Binning-Schemas, von denen eines ("Integer") für automatische "Bins" für Integer-Daten geeignet ist.

import pandas as pd 
import physt 

df = pd.read_csv("visanal_so.csv") 
ax = physt.h1(df.vis, "integer").plot(density=True, alpha=0.5) 
ax.set_ylabel("Frequency"); 

What you get

P. S. Beachten Sie, dass die Handlung dem Original ähnelt, aber nicht mit dem übereinstimmt, was @jezrael zeigt. Das automatische Pandas-Binning verhält sich etwas seltsam und definitiv nicht so, wie du es beabsichtigt hast.

+0

sehr geschätzt. Ich werde es mir ansehen. – blz