Palettes catégorielles

Améliorer vos visualisations de données en Python

Nick Strayer

Instructor

trois panneaux montrant des pays, des villes et des oiseaux comme exemples de données catégorielles

Améliorer vos visualisations de données en Python

Limites de perception

  • Limitez-vous à 10 catégories max.
  • Pensez au daltonisme
sns.palplot(sns.color_palette('Set2', 11))

Beaucoup de couleurs difficiles à distinguer à cause de leur nombre

Améliorer vos visualisations de données en Python
# Ajouter une colonne avec les combinaisons souhaitées
pollution['interesting cities'] = [x if x in ['Long Beach', 'Cincinnati'] 
                                   else 'other' for x in pollution['city'] ]

sns.scatterplot(x="NO2", y="SO2", hue = 'interesting cities', palette='Set2',
                data=pollution.query('year == 2014 & month == 12'))

nuage de points où Long Beach et Cincinnati ont des couleurs distinctes et toutes les autres villes sont regroupées en « other »

Améliorer vos visualisations de données en Python
colorbrewer_palettes = ['Set1',   'Set2',    'Set3',    'Accent', 
                        'Paired', 'Pastel1', 'Pastel2', 'Dark2']

for pal in colorbrewer_palettes: 
    sns.palplot(pal=sns.color_palette(pal))
    plt.title(pal, loc = 'left')

Série de palettes de couleurs catégorielles disponibles

Améliorer vos visualisations de données en Python

Données ordinales (a)

  • Possède un ordre entre classes

  • Nombre fixé de classes distinctes

Schéma montrant quatre quartiles

Améliorer vos visualisations de données en Python

Données ordinales (b)

  • Possède un ordre entre classes

  • Nombre fixé de classes distinctes

Schéma montrant les sept jours de la semaine

Améliorer vos visualisations de données en Python

Données ordinales (c)

  • Possède un ordre entre classes

  • Nombre fixé de classes distinctes

Échelle d'emoji du sourire à la tristesse

Améliorer vos visualisations de données en Python
colorbrewer_palettes = ['Reds', 'Blues', 'YlOrBr', 'PuBuGn', 'GnBu', 'Greys']

for i, pal in enumerate(colorbrewer_palettes): 
    sns.palplot(pal=sns.color_palette(pal, n_colors=i+4))

Série de palettes ordinales disponibles

Améliorer vos visualisations de données en Python
# Créer une colonne de tertiles avec qcut()
pollution['NO2 Tertial'] = pd.qcut(pollution['NO2'], 3, labels = False)

# Tracer en colorant selon les tertiles calculés 
sns.scatterplot(x="CO", y="SO2", hue='NO2 Tertial', palette="OrRd",
                data=pollution.query("city == 'Long Beach' & year == 2014"))

Nuage de points de CO et SO2 codant les tertiles de NO2 avec une échelle ordinale rouge

Améliorer vos visualisations de données en Python

Colorons quelques catégories

Améliorer vos visualisations de données en Python

Preparing Video For Download...