2017-11-03 6 views
-3

Ich habe unter Datenrahmen. Ich möchte ein einfaches Histogramm erstellen, indem ich die Anzahl der Tweets-Nummern sortiere.Wie erstellt man ein Histogramm?

**Source**  **Number of Tweets** 
Twitter for Android 59472 
Twitter for iPhone 27244 
Twitter Web Client 9239 
Twitter Lite 6479 
Twitter for iPad 1159 
TweetCaster for Android 407 
Twitter for Windows Phone 233 
TweetDeck 219 
Mobile Web (M2) 197 
Twitter for Windows 134 
Commun.it 121 
Facebook 18 
Media Studio 16 
MeTweets for Windows Phone 14 

Hier ist der Code;

my_plot = data.sort(columns='Number of Tweets',ascending=False).plot(
        kind='bar',legend=None,title="Tweet Numbers Per Source") 
my_plot.set_xlabel("Source") 
my_plot.set_ylabel("Tweet Numbers") 

Aber ich bekomme die Warnung:

/home/bd/anaconda3/lib/python3.5/site-packages/ipykernel/__main__.py:1: 
    FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....) 
if __name__ == '__main__':` 

Auch, wenn ich Code:

my_plot.show() 

ich unten Fehlermeldung.

AttributeError: 'AxesSubplot' object has no attribute 'show'

Wie kann ich dieses Problem beheben?

+1

Welche Schlussfolgerung ziehen Sie aus 'sort (columns = ....) ist veraltet, verwenden Sie sort_values ​​(by = .....)'? – klutt

+0

Hallo, können Sie Ihren Kern mehr erweitern, um zu sehen, wie Sie Plotmodule importieren? – nio

+1

Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) – klutt

Antwort

1

Um schnell den Fehler mit Histogramm zu korrigieren: Ich gehe davon aus, dass Sie matplotlib Bibliothek für Ihr Histogramm und dass Sie importieren Sie Ihre Bibliothek wie folgt verwenden:

import matplotlib.pyplot as plt 

dann versuchen, diesen Befehl am Ende:

plt.show() 

Statt:

my_plot.show() 

Es ist kontraintuitiv, diese Methode plt.show zu verwenden, ohne auf das bestimmte Objekt Bezug zu nehmen, das Ihre Daten enthält.

Überprüfen Sie this link für ein Beispielhistogramm. Sie benutzen numpy und matplotlib. Als nächstes möchten Sie Balkendiagramm, nicht Histogramm verwenden. Das Histogramm benötigt Hunderte bis Tausende von Zahlen und sortiert sie in eine bestimmte Anzahl von Spalten, z. B. 5. Sie haben vordefinierte Spalten, die so hoch wie ihr Wert sind. Dies kann mit einem Balkendiagramm angezeigt werden. Überprüfen Sie Beispiele für Balkendiagramm here.

+0

Bitte vermeide Annahmen. Wenn du es nicht weißt, frage zuerst in einem Kommentar. Wenn Ihre Annahme wahr ist, schreiben Sie eine Antwort. – klutt

+0

Ok, ich bekomme Histogramm auf diese Weise. Ich habe auch FutureWarning behoben: sort (columns = ....) ist veraltet, benutze sort_values ​​(by = .....) part. – Behzat

+0

, aber ich möchte die ersten 10 Elemente im Histogramm angezeigt bekommen. Ich habe 'bins = 10' in my_plot = data.sort (columns = 'Anzahl der Tweets', aufsteigend = False) eingefügt. Plot ( art = 'bar', legende = None, title = "Tweet Zahlen pro Quelle", Bins = 10) aber ich bekomme eine Fehlermeldung. – Behzat

Verwandte Themen