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

  • Limiter à 10 catégories ou moins
  • Tenir compte du 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 nouvelle 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 sous une autre couleur

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)

  • Ordre entre les classes

  • Nombre fixe de classes distinctes

Diagramme montrant quatre quartiles

Améliorer vos visualisations de données en Python

Données ordinales (b)

  • Ordre entre les classes

  • Nombre fixe de classes distinctes

Diagramme montrant les sept jours de la semaine

Améliorer vos visualisations de données en Python

Données ordinales (c)

  • Ordre entre les classes

  • Nombre fixe de classes distinctes

Diagramme montrant une échelle de « heureux » à « triste » avec des émojis

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 encodant les tertiles de NO2 avec une échelle ordinale rouge

Améliorer vos visualisations de données en Python

Colorons des catégories

Améliorer vos visualisations de données en Python

Preparing Video For Download...