Gráficos de dispersión, gráficos de dispersión y gráficos de burbujas
Este capítulo hace hincapié en los detalles sobre gráficos de dispersión, gráficos de dispersión y gráficos de burbujas. Primero, estudiemos sobre el diagrama de dispersión.
Gráfico de dispersión
Los diagramas de dispersión se utilizan para plot datapuntos en un eje horizontal y vertical para mostrar cómo una variable afecta a otra. Cada fila de la tabla de datos está representada por un marcador cuya posición depende de sus valores en las columnas establecidas en elX y Y ejes.
los scatter() método del módulo graph_objs (go.Scatter)produce un rastro de dispersión. Aquí elmodeLa propiedad decide la apariencia de los puntos de datos. El valor predeterminado del modo son líneas que muestran una línea continua que conecta puntos de datos. Si se establece enmarkers, solo se muestran los puntos de datos representados por pequeños círculos rellenos. Cuando se asigna el modo 'líneas + marcadores', se muestran tanto círculos como líneas.
En el siguiente ejemplo, traza trazos de dispersión de tres conjuntos de puntos generados aleatoriamente en el sistema de coordenadas cartesianas. Cada traza que se muestra con una propiedad de modo diferente se explica a continuación.
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 salida de Jupyter notebook cell es como se indica a continuación:
Diagrama de dispersión
WebGL (Biblioteca de gráficos web) es una API de JavaScript para renderizar 2D y 3D graphicsdentro de cualquier navegador web compatible sin el uso de complementos. WebGL está completamente integrado con otros estándares web, lo que permite un uso acelerado del procesamiento de imágenes por parte de la Unidad de procesamiento de gráficos (GPU).
Plotly puede implementar WebGL con Scattergl()en lugar de Scatter () para aumentar la velocidad, mejorar la interactividad y la capacidad de trazar aún más datos. losgo.scattergl() función que ofrece un mejor rendimiento cuando se trata de una gran cantidad de puntos de datos.
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 salida se menciona a continuación:
Gráficos de burbujas
Un gráfico de burbujas muestra tres dimensiones de datos. Cada entidad con sus tres dimensiones de datos asociados se traza como undisk (burbuja) que expresa dos de las dimensiones a través del disco xy locationy el tercero por su tamaño. Los tamaños de las burbujas están determinados por los valores de la tercera serie de datos.
Bubble chartes una variación del diagrama de dispersión, en el que los puntos de datos se reemplazan con burbujas. Si sus datos tienen tres dimensiones como se muestra a continuación, crear un gráfico de burbujas será una buena opción.
Empresa | Productos | Rebaja | Compartir |
---|---|---|---|
UN | 13 | 2354 | 23 |
segundo | 6 | 5423 | 47 |
C | 23 | 2451 | 30 |
El gráfico de burbujas se produce con go.Scatter()rastro. Dos de las series de datos anteriores se dan como propiedades xey. La tercera dimensión se muestra mediante un marcador y su tamaño representa la tercera serie de datos. En el caso mencionado anteriormente, utilizamosproducts y sale como x y y propiedades y market share como marker size.
Ingrese el siguiente código en el cuaderno de 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 salida sería la que se muestra a continuación: