Nuage de points, nuage de points et graphiques à bulles

Ce chapitre met l'accent sur les détails concernant le nuage de points, le nuage de points et les graphiques à bulles. Commençons par étudier le nuage de points.

Nuage de points

Les nuages ​​de points sont utilisés pour plot datapointe sur un axe horizontal et un axe vertical pour montrer comment une variable affecte une autre. Chaque ligne de la table de données est représentée par un marqueur dont la position dépend de ses valeurs dans les colonnes définies sur leX et Y axes.

le scatter() méthode du module graph_objs (go.Scatter)produit une trace de dispersion. Ici lemodela propriété décide de l'apparence des points de données. La valeur par défaut du mode est des lignes qui affichent une ligne continue reliant les points de données. Si défini surmarkers, seuls les points de données représentés par de petits cercles pleins sont affichés. Lorsque le mode est assigné «lignes + marqueurs», les cercles et les lignes sont affichés.

Dans l'exemple suivant, trace les traces de dispersion de trois ensembles de points générés aléatoirement dans le système de coordonnées cartésien. Chaque trace affichée avec une propriété de mode différente est expliquée ci-dessous.

import numpy as np
N = 100
x_vals = np.linspace(0, 1, N)
y1 = np.random.randn(N) + 5
y2 = np.random.randn(N)
y3 = np.random.randn(N) - 5
trace0 = go.Scatter(
   x = x_vals,
   y = y1,
   mode = 'markers',
   name = 'markers'
)
trace1 = go.Scatter(
   x = x_vals,
   y = y2,
   mode = 'lines+markers',
   name = 'line+markers'
)
trace2 = go.Scatter(
   x = x_vals,
   y = y3,
   mode = 'lines',
   name = 'line'
)
data = [trace0, trace1, trace2]
fig = go.Figure(data = data)
iplot(fig)

La sortie de Jupyter notebook cell est comme indiqué ci-dessous -

Diagramme Scattergl

WebGL (Web Graphics Library) est une API JavaScript pour le rendu interactif 2D et 3D graphicsdans n'importe quel navigateur Web compatible sans l'utilisation de plug-ins. WebGL est entièrement intégré à d'autres normes Web, ce qui permet une utilisation accélérée du traitement d'image par l'unité de traitement graphique (GPU).

Plotly, vous pouvez implémenter WebGL avec Scattergl()à la place de Scatter () pour une vitesse accrue, une interactivité améliorée et la possibilité de tracer encore plus de données. lego.scattergl() fonction qui donne de meilleures performances lorsqu'un grand nombre de points de données sont impliqués.

import numpy as np
N = 100000
x = np.random.randn(N)
y = np.random.randn(N)
   trace0 = go.Scattergl(
   x = x, y = y, mode = 'markers'
)
data = [trace0]
layout = go.Layout(title = "scattergl plot ")
fig = go.Figure(data = data, layout = layout)
iplot(fig)

La sortie est mentionnée ci-dessous -

Graphiques à bulles

Un graphique à bulles affiche trois dimensions de données. Chaque entité avec ses trois dimensions de données associées est tracée comme undisk (bulle) qui exprime deux des dimensions à travers le disque xy locationet le troisième par sa taille. Les tailles des bulles sont déterminées par les valeurs de la troisième série de données.

Bubble chartest une variante du nuage de points, dans lequel les points de données sont remplacés par des bulles. Si vos données ont trois dimensions comme indiqué ci-dessous, la création d'un graphique à bulles sera un bon choix.

Entreprise Des produits Vente Partager
UNE 13 2354 23
B 6 5423 47
C 23 2451 30

Le graphique à bulles est produit avec go.Scatter()trace. Deux des séries de données ci-dessus sont données sous forme de propriétés x et y. La troisième dimension est indiquée par un marqueur dont la taille représente la troisième série de données. Dans le cas mentionné ci-dessus, nous utilisonsproducts et sale comme x et y propriétés et market share comme marker size.

Entrez le code suivant dans le notebook Jupyter.

company = ['A','B','C']
products = [13,6,23]
sale = [2354,5423,4251]
share = [23,47,30]
fig = go.Figure(data = [go.Scatter(
   x = products, y = sale,
   text = [
      'company:'+c+' share:'+str(s)+'%' 
      for c in company for s in share if company.index(c)==share.index(s)
   ],
   mode = 'markers',
   marker_size = share, marker_color = ['blue','red','yellow'])
])
iplot(fig)

La sortie serait comme indiqué ci-dessous -