Analizar datos de tablas mediante gráficas de coordenadas paralelas
Este ejemplo muestra cómo importar un archivo en MATLAB® como una tabla, cómo crear una gráfica de coordenadas paralelas a partir de datos tabulares y cómo modificar el aspecto de la gráfica.
Las gráficas de coordenadas paralelas son útiles para visualizar datos matriciales o tabulares con varias columnas. Las filas de los datos de entrada se corresponden con las líneas de la gráfica, y las columnas de los datos de entrada se corresponden con las coordenadas de la gráfica. Puede agrupar las líneas en la gráfica para ver mejor las tendencias de los datos.
Importar un archivo como tabla
Cargue el archivo de ejemplo TemperatureData.csv
, que contiene las temperaturas medias desde enero de 2015 a julio de 2016. Lea el archivo en una tabla y muestre las primeras filas.
tbl = readtable('TemperatureData.csv');
head(tbl)
Year Month Day TemperatureF ____ ___________ ___ ____________ 2015 {'January'} 1 23 2015 {'January'} 2 31 2015 {'January'} 3 25 2015 {'January'} 4 39 2015 {'January'} 5 29 2015 {'January'} 6 12 2015 {'January'} 7 10 2015 {'January'} 8 4
Crear gráficas básicas de coordenadas paralelas
Cree una gráfica de coordenadas paralelas a partir de las primeras filas de la tabla. Cada línea de la gráfica se corresponde con una única fila de la tabla. parallelplot
muestra, de forma predeterminada, todas las variables de coordenadas en la tabla y en el mismo orden en el que aparecen en ella. El software muestra los nombres de las variables de coordenadas debajo de sus correspondientes reglas de coordenadas.
La gráfica muestra que las primeras ocho filas de la tabla proporcionan los datos de temperatura de los primeros ocho días de enero de 2015. Por ejemplo, el octavo día fue el más frío de los ocho, de media.
parallelplot(head(tbl))
Para ayudarle a interpretar la gráfica, MATLAB distorsiona de forma aleatoria las líneas de la gráfica, de forma predeterminada, de modo que es poco probable que se superpongan perfectamente en las reglas de coordenadas. Por ejemplo, aunque las primeras ocho observaciones tengan los mismos valores de Year
y Month
, las líneas de la gráfica no están a la altura de la marca de graduación de 2015
en la regla de coordenadas Year
o en la marca de graduación January
en la regla de coordenadas Month
. Aunque la distorsión afecte a todas las variables de las coordenadas, es más evidente a menudo en las reglas de coordenadas categóricas, ya que depende de la distancia entre las marcas de graduación. Puede controlar la cantidad de distorsión en la gráfica configurando la propiedad Jitter
.
Tenga en cuenta que algunas marcas de graduación en la regla de coordenadas Year
son valores decimales poco significativos. Para garantizar que las marcas de graduación de una regla de coordenadas se corresponden solo con valores útiles, convierta la variable en una variable categórica mediante la función categorical
.
tbl.Year = categorical(tbl.Year);
Cree ahora una gráfica de coordenadas paralelas a partir de la tabla completa. Asigne el objeto ParallelCoordinatesPlot
a la variable p
y utilice p
para modificar la gráfica después de crearla. Por ejemplo, añada un título a la gráfica mediante la propiedad Title
.
p = parallelplot(tbl)
p = ParallelCoordinatesPlot with properties: SourceTable: [565x4 table] CoordinateVariables: {'Year' 'Month' 'Day' 'TemperatureF'} GroupVariable: '' Use GET to show all properties
p.Title = 'Temperature Data';
Agrupar líneas de gráficas
Agrupe las líneas de la gráfica según los valores de Year
mediante la propiedad GroupVariable
. MATLAB añade una leyenda a la gráfica de forma predeterminada. Puede eliminar la leyenda estableciendo la propiedad LegendVisible
en 'off'
.
p.GroupVariable = 'Year';
Warning: Index exceeds the number of array elements. Index must not exceed 1.
Reorganizar las variables de las coordenadas de forma interactiva
Reorganice las variables de las coordenadas de forma interactiva para compararlas de forma más sencilla y decidir cuáles mantener en la gráfica.
Abra la gráfica en una ventana de figuras. Haga clic en una etiqueta de marca de coordenadas y arrastre la regla de coordenadas asociada a la ubicación que elija. El software marca el contorno de la regla de coordenadas seleccionada en un rectángulo negro. Por ejemplo, puede hacer clic en la etiqueta de marca de coordenadas Month
y arrastrar la regla de coordenadas a la derecha. Podrá comparar con facilidad los valores Month
y TemperatureF
.
Al reorganizar las variables de las coordenadas de forma interactiva, el software actualiza las propiedades CoordinateTickLabels
, CoordinateVariables
y CoordinateData
de la gráfica.
Para ver más opciones de interactividad, consulte Tips.
Seleccionar subconjuntos de variables de coordenadas
Visualice un subconjunto de variables de coordenadas en p.SourceTable
y especifique su orden en la gráfica configurando la propiedad CoordinateVariables
de p
.
Elimine concretamente la variable Day
de la gráfica y visualice la variable TemperatureF
, que se encuentra en la cuarta columna de la tabla de origen, como la segunda coordenada en la gráfica.
p.CoordinateVariables = [1 4 2];
También puede configurar la propiedad CoordinateVariables
mediante un arreglo de cadenas o celdas de nombres de variables o un vector lógico con elementos true
para las variables seleccionadas.
Modificar categorías en variables de coordenadas
Visualice un subconjunto de categorías en Month
y cambie el orden de la categoría en la regla de coordenadas de la gráfica.
Dado que algunos meses disponen de datos solo para uno de los dos años, elimine las filas de la tabla de origen que corresponden con dichos meses exclusivamente. MATLAB actualiza la gráfica a medida que modifica la tabla de origen.
uniqueMonth = {'September','October','November','December','August'}; uniqueMonthIdx = ismember(p.SourceTable.Month,uniqueMonth); p.SourceTable(uniqueMonthIdx,:) = [];
Ordene los meses de forma cronológica en la regla de coordenadas Month
actualizando la tabla de origen.
categoricalMonth = categorical(p.SourceTable.Month); newOrder = {'January','February','March','April','May','June','July'}; orderMonth = reordercats(categoricalMonth,newOrder); p.SourceTable.Month = orderMonth;
Agrupar líneas de gráficas mediante valores combinados
Para visualizar mejor el intervalo de temperaturas durante cada mes, combine los datos de la temperatura mediante discretize
y agrupe las líneas de la gráfica usando los valores combinados. Compruebe las temperaturas máxima y mínima en la tabla de origen. Configure los extremos del intervalo de forma que incluya estos valores.
min(p.SourceTable.TemperatureF)
ans = -3
max(p.SourceTable.TemperatureF)
ans = 80
binEdges = [-3 10:10:80]; bins = {'00s+/-','10s','20s','30s','40s','50s','60s','70s+'}; groupTemperature = discretize(p.SourceTable.TemperatureF, ... binEdges,'categorical',bins);
Añada las temperaturas combinadas en la tabla de origen. Agrupe las líneas de la gráfica según los datos combinados de temperatura.
p.SourceTable.GroupTemperature = groupTemperature;
p.GroupVariable = 'GroupTemperature';
Como GroupTemperature
incluye más de siete categorías, algunos de los grupos tienen el mismo color en la gráfica. Asigne distintos colores a los grupos configurando la propiedad Color
.
p.Color = jet(8);
Consulte también
Funciones
parallelplot
|table
|readtable
|reordercats
|categorical
|discretize