> Modules non standards > Seaborn > Scatterplots et lineplots
Scatterplots et lineplots
On part par exemple d'un dataframe comme :
df = pandas.DataFrame({'X': [1, 2, 3, 4, 5], 'Y': [1, 4, 9, 16, 25],
'Z': ['a', 'b', 'a', 'b', 'b'],
'T': ['A', 'A', 'A', 'B', 'B'], 'U': [20, 10, 10, 2, 10]})
Scatterplot
Scatterplot avec différentes catégories qui permettent de fixer : la couleur (hue), le style de points (style), et la taille (size, si variable numériques) :
- avec tous les paramètres de catégories (la taille est normalisée), et en précisant la plage de variation des tailles :
df = pandas.DataFrame({'X': [1, 2, 3, 4, 5], 'Y': [1, 4, 9, 16, 25],
'Z': ['a', 'b', 'a', 'b', 'b'],
'T': ['A', 'A', 'A', 'B', 'B'], 'U': [20, 10, 10, 2, 10]})
seaborn.scatterplot(x = 'X', y = 'Y', hue = 'Z', style = 'T', size = 'U', sizes = (30, 200), data = df)
- pour hue, si la valeur est numérique, utilise une échelle de couleurs, sinon utilise des couleurs discrètes.
- utiliser s = 10 (et non size = 10) si on veut simplement ajuster la taille de tous les points (size est quand on veut faire varier la taille du point en fonction d'une variable).
- hue_order = ['b', 'a'] : permet d'indiquer dans quel ordre faire figurer les variables.
- hue_norm = (2, 20) : la plage dans laquelle on fait varier les couleurs quand la hue est quantitative.
- palette = {'a': 'red', 'b': 'green'} : les couleurs à utiliser si hue a des valeurs discrètes.
- palette = 'RdBu' : la palette de ccouleles couleurs si hue a des valeurs continues.
- legend = False : n'affiche pas la légende (on peut l'afficher ensuite à la main).
- ax = myAxes : pour indiquer l'axe prédéfini sur lequel tracer le graphe.
- pour les styles, on peut indiquer quel style utilisé pour chaque niveau :
df = pandas.DataFrame({'X': [1, 2, 3, 4, 5], 'Y': [1, 4, 9, 16, 25],
'Z': ['a', 'b', 'a', 'b', 'b'], 'T': ['A', 'A', 'A', 'B', 'B']})
seaborn.scatterplot(x = 'X', y = 'Y', hue = 'Z', style = 'T',
palette = {'a': 'red', 'b': 'blue'}, markers = {'A': '+', 'B': 'x'},
s = 100, data = df)
Lineplot
Lineplot :
- les points sont reliés par une ligne.
- les valeurs de x sont d'abord triées avant de faire le tracé !
df = pandas.DataFrame({'X': [5, 2, 3, 4, 1], 'Y': [25, 4, 9, 16, 1]})
seaborn.lineplot(x = 'X', y = 'Y', data = df)
- si il y a plusieurs valeurs identiques de x à chaque fois,la moyenne est calculée et l'intervalle de confiance à 95% va être tracé en utilisant un bootstraping (utiliser ci = None pour éviter cela)
df = pandas.DataFrame({'X': [5, 2, 3, 4, 1, 5, 2, 3, 4, 1],
'Y': [25, 4, 9, 16, 1, 10, 4, 6, 8, 2],
'Z': ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b']})
seaborn.lineplot(x = 'X', y = 'Y', data = df)
- on peut aussi utiliser la déviation standard au lieu de l'intervalle de confiance avec ci = 'sd'
df = pandas.DataFrame({'X': [1, 1, 2, 2, 3, 3, 4, 4, 5, 5],
'Y': [1, 2, 4, 7, 9, 12, 16, 18, 25, 20]})
seaborn.lineplot(x = 'X', y = 'Y', marker = 'o', ci = 'sd', err_style = 'bars', data = df,
markersize = 20, markerfacecolor = 'red')
lineplot peut tracer plusieurs courbes, éventuellement avec des barres d'erreur si valeurs redondantes pour la même valeur de x :
- lineplots multiples avec des barres d'erreur :
df = pandas.DataFrame({'X': [5, 2, 3, 4, 1, 5, 2, 3, 4, 4, 1, 1],
'Y': [25, 4, 9, 16, 1, 10, 4, 6, 8, 12, 2, 10],
'Z': ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b']})
seaborn.lineplot(x = 'X', y = 'Y', hue = 'Z', marker = 'o', markersize = 10, ci = 'sd',
err_style = 'bars', err_kws = {'capsize': 5, 'capthick': 2, 'elinewidth': 0.5}, data = df)
- markersize (ou ms) est la taille des marqueurs.
- capsize est la largeur des traits horizontaux des barres d'erreur (défaut = pas de trait horizontal).
- capthick est l'épaisseur des traits horizontaux.
- elinewidth est l'épaisseur des traits verticaux.
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert