Gráficos multidimensionales en Python: de tridimensional a seis dimensional

Ejemplos de gráficos multidimensionales.

Introduccion


La visualización es una parte importante del análisis de datos, y la capacidad de mirar múltiples dimensiones al mismo tiempo facilita esta tarea. En el tutorial dibujaremos gráficos de hasta 6 dimensiones.


Plotly es una biblioteca de Python de código abierto para una variedad de visualizaciones que ofrece mucha más personalización que el famoso matplotlib y seaborn . El módulo se instala como de costumbre: pip install plotly . Lo usaremos para dibujar gráficos.


Vamos a preparar los datos.


Para la visualización, utilizamos datos simples sobre automóviles de UCI (Universidad de California, Irvine - Transl. Aprox.) , Que representan 26 características para 205 automóviles (26 columnas para 205 filas). Para visualizar seis dimensiones, tomamos estos seis parámetros.


Aquí solo se muestran 4 líneas de 205.

Descargar datos de CSV usando pandas .


import pandas as pd data = pd.read_csv("cars.csv") 

Ahora, habiendo preparado, comencemos con dos dimensiones.


Diagrama de dispersión bidimensional


Un diagrama de dispersión es un diagrama muy simple y común. De los 6 parámetros, el precio y el peso en vacío se usan a continuación como Y y X, respectivamente.


 #    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) 

En plotly, el proceso es ligeramente diferente del mismo en Matplotlib. Debemos crear un diseño y una figura , pasándolos a la función offline.plot , después de lo cual el resultado se guardará en un archivo HTML en el directorio de trabajo actual. Aquí hay una captura de pantalla de lo que sucede. Al final del artículo habrá un enlace al repositorio de GitHub con gráficos HTML interactivos listos para usar.


Diagrama de dispersión bidimensional

Diagrama de dispersión 3D


Podemos agregar un tercer parámetro de potencia (cantidad de potencia) al eje Z. Plotly proporciona una función Scatter3D para construir gráficos 3D interactivos.


Gráfico 3D

En lugar de pegar el código aquí cada vez, lo agregué al repositorio.


(Es más conveniente mirar el código relevante en una pestaña adyacente en paralelo con la lectura - aprox. Transl.)


Agregar una cuarta dimensión


Sabemos que no puede usar más de tres dimensiones directamente, pero hay una solución alternativa: podemos emular la profundidad para visualizar dimensiones más altas usando color, tamaño o forma.


Aquí, junto con las tres características anteriores, usaremos el kilometraje de la ciudad: city-mpg como la cuarta dimensión, de la cual será responsable el parámetro marcador de color de la función Scatter3D . Un tono más claro del marcador significará menos kilometraje.


Es inmediatamente evidente que cuanto mayor sea el precio, la cantidad de caballos y la masa, menor será el kilometraje.


Gráfico 4D con sombras como la cuarta dimensión.

Agregar una quinta dimensión


El tamaño del marcador se puede utilizar para visualizar la quinta dimensión. Utilizamos la característica del tamaño del motor para el parámetro markersize de la función Scatter3D .


Observaciones: el tamaño del motor está relacionado con algunos de los parámetros anteriores. Cuanto mayor sea el precio, mayor será el motor. Además de: menor kilometraje - más motor.


Gráfico 5D con valor de marcador como quinta dimensión (tamaño del motor)

Añadiendo la Sexta Dimensión


La forma del marcador es ideal para visualizar categorías. Plotly le ofrece la opción de 10 formas diferentes para gráficos en 3D (asterisco, círculo, cuadrado, etc.). Por lo tanto, se pueden mostrar hasta 10 valores diferentes como un formulario.


Tenemos el número de puertas característico , que contiene números enteros: el número de puertas (2 o 4). Transformamos estos valores en figuras: un cuadrado para 4 puertas, un círculo para 2 puertas. Se utiliza el parámetro de símbolo de marcador de la función Scatter3D .


Observaciones: parece que todos los autos más baratos tienen 4 puertas (círculos). Al continuar estudiando el cronograma, se pueden hacer más suposiciones y conclusiones.


Gráfico 6D con forma de marcador como sexta dimensión (número de puertas)

¿Podemos agregar más dimensiones?


¡Por supuesto que podemos! Los marcadores tienen más propiedades, como opacidad y gradientes, que se pueden habilitar. Pero mientras más dimensiones agreguemos, más difícil será mantenerlos a todos en la cabeza.


Código fuente


El código Python y los gráficos interactivos para todas las formas están disponibles en GitHub aquí.

Source: https://habr.com/ru/post/456282/


All Articles