2016-08-18 2 views
1

Ich habe Daten aus einer SQL-Anweisung wieÄnderung Binabmessung von Histogrammdaten

'select action_count, count(*) "num_users" from customers group by action_count;' 

und laden diese in eine Pandas Datenrahmen. Ich kann einen einfachen Plot-Befehl auf den Daten oder barplot ausführen, damit es wie ein Histogramm aussieht. Aber wie kann ich die Bin-Größe dieses Datensatzes leicht ändern? Und wie plane ich dann die Bins, d. H. Die x-Achse korrekt?

Danke!

Antwort

0

Sie können die Position der Kanten von Behältern mithilfe einer Liste in pandashist angeben. Zum Beispiel mit einer benutzerdefinierten Sequenz mit sind -2.0--0.5 und dann -0.5 zu 0.0 durch ein paar Schritte von 0.1 gefolgt,

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 

df =pd.DataFrame({'col1':np.random.randn(10000)}) 
df.hist(bins=[-2.,-0.5,0.,0.1,0.2,0.3]) 
plt.show() 

, die Plots,

enter image description here

+0

Ja, das ist die normale So wie ich es weiß. Aber die Daten, die ich habe, sind nicht mehr die Rohdaten (siehe SQL-Anweisung). Es ist, als ob ich in deinem Beispiel schreiben würde: [((-2, -. 5), 2700), ((-5,0), 1900), ...] '. Nur dass ich nur ganze Zahlen als 'Bins' habe. – asPlankBridge

+0

Sie haben also bereits Histogramm Daten (z. B. wie die Ausgabe von 'numpy.histogram')? Möchten Sie, dass die Breite des geplotteten Balkens diesen Werten entspricht (in diesem Fall könnten Sie das Argument 'width' verwenden, um mit einem Array wie oben dargestellt zu arbeiten). Oder müssen Sie unterschiedliche Breiten von den Daten erhalten, die Sie haben (irgendeine Form der Interpolation)? Könnten Sie einige Beispieldaten und vielleicht eine Skizze der Ausgabe hinzufügen? –

Verwandte Themen