2013-10-15 3 views
8

Ich versuche, ein Histogramm einer einfachen Liste von Zahlen in Python mit ipython notebook und ggplot for python. Mit PyLab ist es einfach genug, aber ich kann nicht funktionieren.Wie mache ich ein Histogramm in Ipython Notebook mit ggplot2 (für Python)

Ich verwende diesen Code (basierend auf dem Diamant-Histogramm Beispiel, das für mich nicht funktioniert):

from ggplot import * 
a = [1, 1, 2, 1, 1, 4, 5, 6] 
p = ggplot(aes(x='carat'), data=a) 
p + geom_hist() + ggtitle("Histogram of Diamond Carats") + labs("Carats", "Freq") 

Mit ipython & pylab, kann ich mit nur hist(a) ein Histogramm machen und es zeigt. Wie mache ich ein Histogramm mit ggplot?

+0

Wollen Sie ggplot wegen des Stils oder gibt es einen anderen Grund. Wenn das erste der Fall ist, können Sie mpltools ausprobieren, eine Erweiterung von matplotlib, die den Stil von ggplot nachahmen kann (siehe http://tonysyu.github.io/mptools/auto_examples/style/plot_ggplot.html) – Jakob

+0

Ich möchte hauptsächlich verwenden ggplot, weil es interessant scheint. – Rory

Antwort

17

Wenn Sie nur ein Histogramm der Zahlen in Ihrem Vektor 'a' machen wollen, gibt es ein paar Probleme.

Zuerst akzeptiert ggplot Daten in Form eines Pandas Dataframe, also müssen Sie zuerst das erstellen.

import pandas as pd 
a = [1, 1, 2, 1, 1, 4, 5, 6] 
df = pd.DataFrame(a, columns=['a']) 

Zweitens ist die geom geom_histogram() nicht geom_hist(). Und schließlich sieht es so aus, als würden Sie Code aus einem der Beispiel-Plots der Diamant-Daten einwerfen. Du brauchst das nicht, also habe ich es entfernt.

from ggplot import * 
p = ggplot(aes(x='a'), data=df) 
p + geom_histogram(binwidth=1) 

enter image description here

7

Haben Sie

hinzufügen

%matplotlib inline

als erster Befehl in Ihrem Notebook?