Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

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(fullfile(matlabroot,'examples','graphics','TemperatureData.csv'));
head(tbl)
ans=8×4 table
    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))

ans = 
  ParallelCoordinatesPlot with properties:

            SourceTable: [8x4 table]
    CoordinateVariables: {'Year'  'Month'  'Day'  'TemperatureF'}
          GroupVariable: ''

  Show all properties

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: ''

  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';

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

Propiedades