Python Language
Visualisation de données avec Python
Recherche…
Matplotlib
Matplotlib est une bibliothèque de traçage mathématique pour Python qui fournit une variété de fonctionnalités de traçage différentes.
La documentation de matplotlib peut être trouvée ici , les SO Docs étant disponibles ici .
Matplotlib fournit deux méthodes distinctes pour le traçage, bien qu'elles soient interchangeables pour la plupart:
- Tout d'abord, matplotlib fournit l'interface
pyplot
interface directe et simple à utiliser qui permet de tracer des graphiques complexes dans un style similaire à MATLAB. - Deuxièmement, matplotlib permet à l'utilisateur de contrôler directement les différents aspects (axes, lignes, ticks, etc.) en utilisant un système basé sur des objets. Ceci est plus difficile mais permet un contrôle complet sur toute la parcelle.
Voici un exemple d'utilisation de l'interface pyplot
pour tracer des données générées:
import matplotlib.pyplot as plt
# Generate some data for plotting.
x = [0, 1, 2, 3, 4, 5, 6]
y = [i**2 for i in x]
# Plot the data x, y with some keyword arguments that control the plot style.
# Use two different plot commands to plot both points (scatter) and a line (plot).
plt.scatter(x, y, c='blue', marker='x', s=100) # Create blue markers of shape "x" and size 100
plt.plot(x, y, color='red', linewidth=2) # Create a red line with linewidth 2.
# Add some text to the axes and a title.
plt.xlabel('x data')
plt.ylabel('y data')
plt.title('An example plot')
# Generate the plot and show to the user.
plt.show()
Notez que plt.show()
est connu pour être problématique dans certains environnements en raison de l'exécution de matplotlib.pyplot
en mode interactif, et si tel est le cas, le comportement de blocage peut être explicitement remplacé par un argument facultatif, plt.show(block=True)
, pour atténuer le problème.
Seaborn
Seaborn est une enveloppe autour de Matplotlib qui facilite la création de tracés statistiques communs. La liste des tracés pris en charge comprend des tracés de distribution univariés et bivariés, des tracés de régression et un certain nombre de méthodes pour tracer des variables catégorielles. La liste complète des parcelles fournies par Seaborn est dans leur référence API .
Créer des graphiques dans Seaborn est aussi simple que d'appeler la fonction graphique appropriée. Voici un exemple de création d'un histogramme, d'une estimation de la densité du noyau et d'un tracé pour les données générées de manière aléatoire.
import numpy as np # numpy used to create data from plotting
import seaborn as sns # common form of importing seaborn
# Generate normally distributed data
data = np.random.randn(1000)
# Plot a histogram with both a rugplot and kde graph superimposed
sns.distplot(data, kde=True, rug=True)
Le style de l'intrigue peut également être contrôlé en utilisant une syntaxe déclarative.
# Using previously created imports and data.
# Use a dark background with no grid.
sns.set_style('dark')
# Create the plot again
sns.distplot(data, kde=True, rug=True)
En prime, les commandes normales de matplotlib peuvent toujours être appliquées aux tracés de Seaborn. Voici un exemple d'ajout de titres d'axes à notre histogramme précédemment créé.
# Using previously created data and style
# Access to matplotlib commands
import matplotlib.pyplot as plt
# Previously created plot.
sns.distplot(data, kde=True, rug=True)
# Set the axis labels.
plt.xlabel('This is my x-axis')
plt.ylabel('This is my y-axis')
MayaVI
MayaVI est un outil de visualisation 3D pour les données scientifiques. Il utilise le Visualization Tool Kit ou VTK sous le capot. Utilisant la puissance de VTK , MayaVI est capable de produire une variété de tracés et de figures en trois dimensions. Il est disponible sous forme de logiciel séparé et de bibliothèque. Semblable à Matplotlib , cette bibliothèque fournit une interface de langage de programmation orientée objet pour créer des tracés sans avoir à connaître VTK .
MayaVI est disponible uniquement dans les séries Python 2.7x! On espère être bientôt disponible dans la série Python 3-x! (Bien que certains succès soient constatés lors de l'utilisation de ses dépendances dans Python 3)
La documentation peut être trouvée ici . Quelques exemples de galeries se trouvent ici
Voici un exemple de tracé créé à l'aide de MayaVI dans la documentation.
# Author: Gael Varoquaux <[email protected]>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.
from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab
mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]
X = 2 / 3. * (cos(u) * cos(2 * v)
+ sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
- sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)
mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )
# Nice view from the front
mlab.view(.0, - 5.0, 4)
mlab.show()
Plotly
Plotly est une plate-forme moderne de traçage et de visualisation de données. Utile pour produire une variété de tracés, en particulier pour les sciences des données, Plotly est disponible sous forme de bibliothèque pour Python , R , JavaScript , Julia et MATLAB . Il peut également être utilisé comme application Web avec ces langues.
Les utilisateurs peuvent installer la bibliothèque de traçage et l'utiliser hors ligne après l'authentification de l'utilisateur. L'installation de cette bibliothèque et son authentification hors ligne sont données ici . En outre, les parcelles peuvent également être réalisées dans les cahiers Jupyter .
L'utilisation de cette bibliothèque nécessite un compte avec un nom d'utilisateur et un mot de passe. Cela donne à l'espace de travail pour enregistrer des tracés et des données sur le cloud.
La version gratuite de la bibliothèque comporte des fonctionnalités légèrement limitées et conçue pour créer 250 parcelles par jour. La version payante a toutes les fonctionnalités, les téléchargements illimités de tracés et plus de stockage de données privées. Pour plus de détails, on peut visiter la page principale ici .
Pour la documentation et des exemples, on peut aller ici
Un exemple de tracé à partir des exemples de documentation:
import plotly.graph_objs as go
import plotly as ply
# Create random data with numpy
import numpy as np
N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5
# Create traces
trace0 = go.Scatter(
x = random_x,
y = random_y0,
mode = 'lines',
name = 'lines'
)
trace1 = go.Scatter(
x = random_x,
y = random_y1,
mode = 'lines+markers',
name = 'lines+markers'
)
trace2 = go.Scatter(
x = random_x,
y = random_y2,
mode = 'markers',
name = 'markers'
)
data = [trace0, trace1, trace2]
ply.offline.plot(data, filename='line-mode')