2016-04-12 14 views
0

Ich versuche, ein interaktives Diagramm mit plotly erstellen und Probleme beim Bestellen der X-Achse. Hier ist der Code Ich verwende:ordnen X-Achse in absteigender Reihenfolge mit Plotly

import plotly.plotly as py 
import cufflinks as cf 
import pandas as pd 
import plotly.tools as tls 
tls.set_credentials_file(username='ladeeda', api_key='ladeeda') 

cf.set_config_file(offline=False, world_readable=True, theme='pearl') 

StudentModalityRetention[StudentModalityRetention['schoolyearsemester'] == 'Sem3']\ 
    .iplot(kind='bubble', x='branch', y='retention', size='active_users', text='active_users', 
      xTitle='', yTitle='Retention', 
      filename='cufflinks/Sem3ModalityRetention') 

und hier ist die Handlung, die generiert wird:

enter image description here

Ich mag die X-Achse ordnen oder Y-Achse in absteigender Reihenfolge. Mit anderen Worten, ich möchte die Blase mit dem höchsten Y-Wert zuerst und so weiter erscheinen lassen.

Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Eine einfache und effiziente Möglichkeit, um Ihr Ziel zu erreichen, ist das Sortieren des Pandas Datenrahmens in absteigender Reihenfolge nach Ihren Anforderungen und dann iplot, um das Diagramm zu plotten, das Ihnen das gewünschte Ergebnis geben wird. Hier ist ein kurzes Beispiel:

yourdataframe.sort_values(by='Y',\ #column name or index values according to which the dataframe is to be sorted 
        axis=0,   #for column sorting 
        ascending=False, #in your case, for descending 
        inplace = True)\ #if you want to perform the operation inplace or return a new dataframe 
        .iplot(kind='bubble', x='branch', y='retention',size='active_users', text='active_users', 
        xTitle='', yTitle='Retention', 
        filename='cufflinks/Sem3ModalityRetention') 

Hoffnung, das Ihnen hilft :))

+0

Vielen Dank für Ihre Antwort. Ich habe '.sort_values ​​(axis =' retention ', aufsteigend = False, inplace = True) 'direkt vor dem' iplot' Aufruf hinzugefügt und bekomme folgenden Fehler: ' TypeError: sort_values ​​() benötigt mindestens 2 Argumente (4 gegeben) '. Ich habe nicht einmal 4 Argumente. Würdest du zufällig wissen, warum das passiert? – Patthebug

+0

@Patthebug Es tut mir sehr leid, da ich vergessen habe, den Parameter 'by' zu erwähnen, der für die Funktion sort_values ​​erforderlich ist. Die Achse wird immer 0 für die Spaltensortierung sein. Sie können die Ergebnisse überprüfen. Wir entschuldigen uns für eventuelle Unannehmlichkeiten. –

+0

Es stellte sich heraus, dass nur 'sort_values ​​(by = 'retention', aufsteigend = False)' benötigt wurde. Keine Entschuldigung nötig, du warst von immenser Hilfe. Vielen Dank :). – Patthebug

Verwandte Themen