Ich Abbilden der Seaborn stripplot auf einen Seaborn PairGrid unter dem Code:Order of categoricals in Seaborn PairGrid
import pandas as pd
import seaborn as sns
df = (pd.read_csv(filepath_or_buffer='http://vincentarelbundock.github.io/' +
'Rdatasets/csv/ggplot2/diamonds.csv')
.drop(labels='Unnamed: 0', axis=1)
.astype(dtype={'cut': 'category', 'color': 'category',
'clarity': 'category'}))
agged = df.groupby(by=['cut', 'color']).mean().sort_index().reset_index()
g = sns.PairGrid(data=agged, x_vars=agged.columns[2:], y_vars=['cut', 'color'],
size=5, aspect=.65)
g.map(func=sns.stripplot, orient='h', size=10, palette='Blues_d')
Standardmäßig sind die Kategorien in den 'Schnitt' Facetten werden in alphabetischer Reihenfolge angezeigt werden. Allerdings möchte ich die Reihenfolge festlegen:
['Fair', 'Good', 'Very Good', 'Premium', 'Ideal']
Ich habe versucht, das Bestehen der ‚Ordnung‘ Parameter für stripplot wie folgt:
g.map(func=sns.stripplot, orient='h', size=10, palette='Blues_d',
order=['Fair', 'Good', 'Very Good', 'Premium', 'Ideal'])
zwar richtig, die Kategorien in ‚schneiden‘ sortiert, es Dies führt dazu, dass in den "Farb" -Facetten überhaupt nichts geplottet wird. Ich habe auch versucht, die ‚Farbe‘ Facette Ordnung in der gleichen Parameter angeben, wie folgt:
g.map(func=sns.stripplot, orient='h', size=10, palette='Blues_d',
order=['Fair', 'Good', 'Very Good', 'Premium', 'Ideal', 'D', 'E', 'F',
'G', 'H', I'])
jedoch hier das Problem ist, dass alle Werte in der Reihenfolge Parameter in erscheinen sowohl in der ‚Farbe‘ und " schneiden 'Facetten.
Ist es möglich, eine Reihenfolge in der Mapping-Funktion anzugeben, die zu einer korrekten Reihenfolge in beiden Facettensätzen führt, ohne Duplikate?
['Fair', 'Good', 'Very Good', 'Premium', 'Ideal']
['D', 'E', 'F', 'G', 'H', I']
Ich habe versucht, meine ursprüngliche Post zu ändern, es minimal, vollständig und überprüfbar zu machen, indem Sie den Code enthält, die meine ursprüngliche df liest (was die Probe Diamanten Datensatz von ggplot2). Hoffentlich wird das helfen. Entschuldigung - ich bin neu darin, hier Fragen zu stellen, also bitte ertragen Sie mich, während ich versuche, klar zu sein! – lifescholar