Exemples de graphiques multidimensionnelsPrésentation
La visualisation est une partie importante de l'analyse des données, et la possibilité de regarder plusieurs dimensions en même temps facilite cette tâche. Dans le tutoriel, nous allons dessiner des graphiques jusqu'à 6 dimensions.
Plotly est une bibliothèque Python open source pour une variété de visualisations qui offre beaucoup plus de personnalisation que le célèbre matplotlib et seaborn . Le module est installé comme d'habitude - pip s'installe de façon compliquée . Nous l'utiliserons pour dessiner des graphiques.
Préparons les données
Pour la visualisation, nous utilisons des données simples sur les voitures de l' UCI (University of California, Irvine - approx. Transl.) , Qui représentent 26 caractéristiques pour 205 voitures (26 colonnes pour 205 lignes). Pour visualiser six dimensions, nous prenons ces six paramètres.
Seules 4 lignes sur 205 sont présentées ici.Téléchargez les données de CSV en utilisant des pandas .
import pandas as pd data = pd.read_csv("cars.csv")
Maintenant, après avoir préparé, commençons par deux dimensions.
Diagramme de dispersion bidimensionnel
Un nuage de points est un tracé très simple et commun. Sur les 6 paramètres, le prix et le poids à vide sont utilisés ci-dessous comme Y et X, respectivement.
# import plotly import plotly.graph_objs as go # figure fig1 = go.Scatter(x=data['curb-weight'], y=data['price'], mode='markers') # layout mylayout = go.Layout(xaxis=dict(title="curb-weight"), yaxis=dict( title="price")) # HTML plotly.offline.plot({"data": [fig1], "layout": mylayout}, auto_open=True)
Dans l'intrigue, le processus est légèrement différent du même dans Matplotlib. Nous devons créer une disposition et une figure , en les transmettant à la fonction offline.plot , après quoi le résultat sera enregistré dans un fichier HTML dans le répertoire de travail actuel. Voici une capture d'écran de ce qui se passe. À la fin de l'article, il y aura un lien vers le référentiel GitHub avec des graphiques HTML interactifs prêts à l'emploi.
Diagramme de dispersion bidimensionnelDiagramme de dispersion 3D
Nous pouvons ajouter un troisième paramètre de puissance (quantité de puissance) à l'axe Z. Plotly fournit une fonction Scatter3D pour créer des graphiques 3D interactifs.
Graphique 3DAu lieu de coller le code ici à chaque fois, je l'ai ajouté au référentiel.
(Il est très pratique de regarder le code correspondant dans un onglet adjacent en parallèle avec la lecture - environ Transl.)
Ajout d'une quatrième dimension
Nous savons que vous ne pouvez pas utiliser plus de trois dimensions directement, mais il existe une solution de contournement: nous pouvons émuler la profondeur pour visualiser des dimensions plus élevées en utilisant la couleur, la taille ou la forme.
Ici, avec les trois caractéristiques précédentes, nous utiliserons le kilométrage de la ville - city-mpg comme quatrième dimension, dont le paramètre markercolor de la fonction Scatter3D sera responsable. Une teinte plus claire du marqueur signifiera moins de kilométrage.
Il est immédiatement évident que plus le prix, le nombre de chevaux et la masse sont élevés, plus le kilométrage est bas.
Graphique 4D avec des nuances comme 4ème dimensionAjout d'une cinquième dimension
La taille du marqueur peut être utilisée pour visualiser la 5e dimension. Nous utilisons la caractéristique de taille du moteur pour le paramètre markersize de la fonction Scatter3D .
Observations: la taille du moteur est liée à certains des paramètres précédents. Plus le prix est élevé, plus le moteur est gros. Ainsi que: kilométrage réduit - plus de moteur.
Tracé 5D avec valeur de marqueur comme cinquième dimension (taille du moteur)Ajout de la sixième dimension
La forme du marqueur est idéale pour visualiser les catégories. Plotly vous offre un choix de 10 formes différentes pour les graphiques 3D (astérisque, cercle, carré, etc.). Ainsi, jusqu'à 10 valeurs différentes peuvent être affichées sous forme de formulaire.
Nous avons le nombre de portes caractéristique, qui contient des nombres entiers - le nombre de portes (2 ou 4). Nous transformons ces valeurs en chiffres: un carré pour 4 portes, un cercle pour 2 portes. Le paramètre markersymbol de la fonction Scatter3D est utilisé .
Observations: on dirait que toutes les voitures les moins chères ont 4 portes (cercles). En poursuivant l'étude du calendrier, davantage d'hypothèses et de conclusions peuvent être tirées.
Graphique 6D avec forme de marqueur comme sixième dimension (nombre de portes)Pouvons-nous ajouter plus de dimensions?
Bien sûr que nous le pouvons! Les marqueurs ont plus de propriétés, telles que l'opacité et les dégradés, qui peuvent être activées. Mais plus nous ajoutons de dimensions, plus il est difficile de les garder toutes en tête.
Code source
Le code Python et les graphiques interactifs pour toutes les formes sont disponibles sur GitHub ici.