Visualización de datos multidimensionales
La visualización de datos multidimensionales (por encima de las 3 dimensiones) no es fácil de lograr con los métodos convencionales. Este artículo presenta varios métodos para mostrar datos multidimensionales en un plano bidimensional utilizando Python.
1. Datos
Tome el clásico conjunto de datos de flores de iris como ejemplo (descarga de datos originales: CSDN o GitHub ).
Los siguientes son 5 piezas de datos formateados, para facilitar la visualización visual posterior (descarga del conjunto de datos de procesamiento de formato: GitHub ).
Longitud del sépalo | Ancho del sépalo | Longitud del pétalo | Ancho del pétalo | Especies |
---|---|---|---|---|
6.4 | 2.8 | 5,6 | 2.2 | virginica |
5 | 2.3 | 3.3 | 1 | versicolor |
4.9 | 2.5 | 4.5 | 1,7 | virginica |
4.9 | 3.1 | 1,5 | 0,1 | sedoso |
5.7 | 3.8 | 1,7 | 0,3 | sedoso |
Las primeras 4 columnas son las 4 características del iris y la última columna son las 3 clasificaciones del iris.
2. Visualización de datos
2.1 Coordenadas paralelas
Cada línea vertical en la figura representa una característica. Los datos en una fila en la tabla se representan como una línea discontinua en la figura, y las líneas en diferentes colores representan diferentes categorías.
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import parallel_coordinates
data = pd.read_csv('D:\\iris.csv')
plt.figure('多维度-parallel_coordinates')
plt.title('parallel_coordinates')
parallel_coordinates(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()
2.2 Gráfico de radar RadViz
Las 4 características corresponden a 4 puntos en el círculo unitario, y cada punto disperso en el círculo representa una fila de datos en la tabla. Se puede imaginar que hay 4 líneas en cada punto disperso conectado a los 4 puntos característicos, y el valor propio (normalizado) representa la fuerza ejercida por las 4 líneas en los puntos dispersos, y la posición de cada punto es exactamente Hágalo equilibrado por la fuerza.
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import radviz
data = pd.read_csv('D:\\iris.csv')
plt.figure('多维度-radviz')
plt.title('radviz')
radviz(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()
2.3 Curva de Andrews
Los valores propios se convierten en coeficientes de secuencia de Fourier y las curvas de diferentes colores representan diferentes categorías.
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import andrews_curves
data = pd.read_csv('D:\\iris.csv')
plt.figure('多维度-andrews_curves')
plt.title('andrews_curves')
andrews_curves(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()
2.4 Diagrama de matriz
Representa la relación entre diferentes características.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('D:\\iris.csv')
sns.pairplot(data, hue='Species')
plt.show()
2.5 Mapa de calor del coeficiente de correlación
Indica la correlación entre diferentes características (coeficiente de correlación de Pearson). Cuanto mayor es el valor, mayor es la correlación.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('D:\\iris.csv')
corr = data.corr()
sns.heatmap(corr, annot=True)
plt.show()
3. Referencias
- Método de visualización de datos multidimensional, solo lea este
- Visualización de datos de Python, solo lea este
- Visualización de datos basada en Python: de unidimensional a multidimensional
Bienvenido a seguir mi cuenta pública de WeChat: