stackedplot

Совмещенный график из нескольких переменных с общей осью X

Описание

пример

stackedplot(tbl) строит графики переменных таблицы или timetable в совмещенный график, максимум до 25 переменных. А графики функций переменные в отдельных осях Y, сложенные вертикально. Переменные имеют общую ось X.

  • Если tbl является таблицей, тогда графики функций переменных по номерам строк.

  • Если tbl является расписанием, тогда графики функций переменных в зависимости от времени строки.

stackedplot графики функций всех числовых, логических, категориальных, datetime и переменных длительности tbl, и игнорирует табличные переменные, имеющие любой другой тип данных.

пример

stackedplot(tbl,vars) строит графики только переменных таблицы или расписания, заданных vars.

stackedplot(___,'XVariable',xvar) задает табличную переменную, которая задает значения X для совмещенного графика. Этот синтаксис поддерживает только таблицы, а не расписания.

пример

stackedplot(X,Y) строит графики столбцов Y от векторного X максимум до 25 столбцов.

stackedplot(Y) строит графики столбцов Y от их номера строки. Шкала оси X колеблется от 1 до количества строк в Y.

stackedplot(___,LineSpec) задает стиль линии, символ маркера и цвет. Можно использовать этот синтаксис с входными параметрами любого из предыдущих синтаксисов.

пример

stackedplot(___,Name,Value) устанавливает свойства для совмещенного графика, используя одну или несколько Name,Value аргументы в виде пар. Список свойств см. в разделе Свойства StackedLineChart. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах. Пары "имя-значение" применяются ко всем графикам на совмещенном графике. Заключайте каждое имя свойства в кавычки.

stackedplot(parent,___) создает совмещенный график на рисунке, панели или вкладке, заданные как parent. Опция parent может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

пример

s = stackedplot(___) возвращает StackedLineChart объект. Можно использовать s для изменения свойств совмещенного графика после создания. Список свойств см. в разделе Свойства StackedLineChart.

Примеры

свернуть все

Считывайте данные из электронной таблицы в таблицу. Затем преобразуйте таблицу в расписание. Первая переменная, которая содержит даты и времена, OutageTime, задает время строки для расписания. Отобразите первые пять строк.

tbl = readtable('outages.csv');
tbl = table2timetable(tbl);
head(tbl,5)
ans=5×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

Отсортируйте расписание так, чтобы время в строках было в порядке. Время строк расписания не должно быть в порядке. Однако, если вы используете время строки в качестве оси X графика, то лучше убедиться, что расписание отсортировано по времени его строки.

tbl = sortrows(tbl);
head(tbl,5)
ans=5×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime          Cause      
    ________________    _____________    ______    __________    ________________    ________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'}
    2002-03-05 17:53    {'MidWest'  }    96.563    2.8666e+05    2002-03-10 14:41    {'wind'        }
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'}
    2002-03-26 01:59    {'MidWest'  }    388.04    5.6422e+05    2002-03-28 19:55    {'winter storm'}
    2002-04-20 16:46    {'MidWest'  }     23141           NaN                 NaT    {'unknown'     }

Создайте совмещенный график данных из tbl. Количество строк, OutageTime, задайте значения вдоль оси X. The stackedplot графики функций значений из Loss, Customers, и RestorationTime переменные с каждой переменной, нанесенной на график вдоль своей собственной оси Y. Однако график не включает Region и Cause переменные, поскольку они содержат данные, которые невозможно построить.

stackedplot(tbl)

Figure contains an object of type stackedplot.

Составьте таблицу из данных о пациентах. Отобразите первые три строки.

tbl = readtable('patients.xls');
head(tbl,3)
ans=3×10 table
      LastName        Gender      Age              Location               Height    Weight    Smoker    Systolic    Diastolic    SelfAssessedHealthStatus
    ____________    __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71       176      true        124          93             {'Excellent'}      
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69       163      false       109          77             {'Fair'     }      
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64       131      false       125          83             {'Good'     }      

Постройте график только четырех переменных из таблицы.

stackedplot(tbl,{'Height','Weight','Systolic','Diastolic'})

Figure contains an object of type stackedplot.

Составьте расписание и отобразите его первые три строки.

tbl = readtable('outages.csv');
tbl = table2timetable(tbl);
tbl = sortrows(tbl);
head(tbl,3)
ans=3×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime          Cause      
    ________________    _____________    ______    __________    ________________    ________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'}
    2002-03-05 17:53    {'MidWest'  }    96.563    2.8666e+05    2002-03-10 14:41    {'wind'        }
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'}

Переупорядочить переменные, задав их в порядке, который отличается от их порядка в таблице. Для примера, RestorationTime - последняя переменная в расписании, которая может быть нанесена. По умолчанию stackedplot помещает его внизу графика. Но можно переупорядочить переменные, чтобы поместить RestorationTime в верхней части.

stackedplot(tbl,{'RestorationTime','Loss','Customers'})

Figure contains an object of type stackedplot.

Существуют также другие способы переупорядочить переменные.

  • Задайте их по их числовому порядку в таблице: stackedplot(tbl,[4 2 3]);

  • Верните StackedLineChart объект и переупорядочить значения в его DisplayVariables свойство: s = stackedplot(tbl); s.DisplayVariables = {'RestorationTime','Loss','Customers'}

Составьте таблицу из подмножества данных о пациентах, используя Weight, Systolic, и Diastolic переменные.

load patients
tbl = table(Weight,Systolic,Diastolic);
head(tbl,3)
ans=3×3 table
    Weight    Systolic    Diastolic
    ______    ________    _________

     176        124          93    
     163        109          77    
     131        125          83    

Создайте совмещенный график с Systolic и Diastolic нанесенный с использованием той же оси Y. Чтобы построить переменные вместе, задайте их в вложенном массиве ячеек.

vars = {{'Systolic','Diastolic'},'Weight'}
vars=1×2 cell array
    {1x2 cell}    {'Weight'}

stackedplot(tbl,vars)

Figure contains an object of type stackedplot.

Создайте числовую матрицу и числовой вектор.

X = [0:4:20]
X = 1×6

     0     4     8    12    16    20

Y = randi(100,6,3)
Y = 6×3

    82    28    96
    91    55    49
    13    96    81
    92    97    15
    64    16    43
    10    98    92

Создайте совмещенный график с помощью X и Y.

stackedplot(X,Y)

Figure contains an object of type stackedplot.

Загрузите расписание, которое имеет набор погодных измерений. Отображение первых трех строк.

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

Создайте совмещенный график. Задайте заголовок и метки для осей Y, используя аргументы пары "имя-значение". Можно использовать пары имя-значения, чтобы изменить любые свойства из их значений по умолчанию значений. (Также обратите внимание, что вы можете задать символ степени с помощью char(176).)

degreeSymbol = char(176);
newYlabels = {'RH (%)',['T (' degreeSymbol 'F)'],'P (in Hg)'};
stackedplot(outdoors,'Title','Weather Data','DisplayLabels',newYlabels)

Figure contains an object of type stackedplot. The chart of type stackedplot has title Weather Data.

The stackedplot функция возвращает StackedLineChart объект. Можно использовать его, чтобы задать одно и то же значение свойства для всех графиков или задать различные значения свойств для отдельных участков. В этом примере сначала измените ширины линии для всех графиков в совмещенный график. Затем используйте PlotType свойство отдельных участков, так что у совмещенный график есть линейный график, график поля точек и лестничный график.

Загрузите расписание, которое имеет набор погодных измерений.

load outdoors
outdoors(1:3,:)
ans=3×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   

Создайте совмещенный график и верните StackedLineChart объект.

s = stackedplot(outdoors)

Figure contains an object of type stackedplot.

s = 
  StackedLineChart with properties:

         SourceTable: [51x3 timetable]
    DisplayVariables: {'Humidity'  'TemperatureF'  'PressureHg'}
               Color: [0 0.4470 0.7410]
           LineStyle: '-'
           LineWidth: 0.5000
              Marker: 'none'
          MarkerSize: 6

  Show all properties

Объект предоставляет доступ ко многим свойствам, которые применяются ко всем графикам. Для примера можно использовать s.LineWidth чтобы сделать линии шире.

s.LineWidth = 2;

Figure contains an object of type stackedplot.

Объект также предоставляет доступ к массивам объектов, которые можно использовать для изменения линий и осей Y для отдельных участков. Для доступа к свойствам отдельных линий используйте s.LineProperties. Для каждого графика можно задать другой стиль линии, маркер, тип графика и так далее.

s.LineProperties
ans=3×1 object
  3x1 StackedLineProperties array with properties:

    Color
    MarkerFaceColor
    MarkerEdgeColor
    LineStyle
    LineWidth
    Marker
    MarkerSize
    PlotType

Измените второй график на график поля точек, а третий - на график лестницы, используя PlotType свойство.

s.LineProperties(2).PlotType = 'scatter';
s.LineProperties(3).PlotType = 'stairs';

Figure contains an object of type stackedplot.

Вы также можете получить доступ к отдельным осям Y через s.AxesProperties свойство.

s.AxesProperties
ans=3×1 object
  3x1 StackedAxesProperties array with properties:

    YLimits
    LegendLabels
    LegendLocation
    LegendVisible

Входные параметры

свернуть все

Входная таблица или расписание.

Переменные в входы таблице, заданные как массив ячеек из векторов символов, строковых массивов, числового массива или логического массива.

Если vars является массивом ячеек, также может быть массивом вложенных ячеек. stackedplot графики функций всех переменных, заданных во вложенной камере, в той же оси Y.

Табличная переменная, которая содержит значения X, заданные как вектор символов, строковый скаляр, целое число или логический массив.

Можно задать xvar только когда входной параметр tbl является таблицей, а не расписанием.

x-значения, заданные как число, datetime, длительность или логический вектор. Длина X должно равняться количеству строк Y.

y-значения, заданные как число, datetime, длительность, категориальный или логический массив. stackedplot графики функций каждого столбца на отдельной оси Y.

Стиль линии, цвет и маркер задается как вектор символов или строка , содержащая символы. Символы могут появиться в любом порядке. Вам не нужно задавать все три характеристики (стиль линии, маркер и цвет). Например, если вы опускаете стиль линии и задаете маркер, то на графике отображается только маркер и нет линии.

Пример: '--or' - красная штриховая линия с маркерами кругов

Стиль линииОписание
-Сплошная линия
--Штриховая линия
:Пунктирная линия
-.Штрих-точка линия
МаркерОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'p'Пентаграмма
'h'Hexagram
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Родительский контейнер, заданный как Figure, Panel, Tab, TiledChartLayout, или GridLayout объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Marker','o','MarkerSize',10

Перечисленные здесь свойства линии на графике являются только подмножеством, общим для всех совмещенных графиков, независимо от того, является ли источник данных таблицей или массивом. Полный список см. в разделе Свойства StackedLineChart.

Цвет линии, заданный как триплет RGB, шестнадцатеричный цветовой код или один из опций, перечисленных в первой таблице.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: 'blue'

Пример: [0 0 1]

Пример: '#0000FF'

Стиль линии, заданный как одно из опций, перечисленных в этой таблице.

Стиль линииОписаниеРезультирующая линия
'-'Сплошная линия

'--'Штриховая линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Нет линииНет линии

Ширина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на ребра маркера.

Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы задаете ширину линии значение, которое меньше, чем ширина пикселя в вашей системе, линия отображается как один пиксель в ширину.

Символ маркера, заданный как одно из значений, перечисленных в этой таблице. По умолчанию объект не отображает маркеры. Установка символа маркера добавляет маркеры в каждую точку данных или вершину.

ЗначениеОписание
'o'Круг
'+'Плюс знак
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
'square' или 's'Квадрат
'diamond' или 'd'Алмаз
'^'Направленный вверх треугольник
'v'Нисходящий треугольник
'>'Треугольник , указывающий вправо
'<'Треугольник , указывающий влево
'pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' или 'h'Шестиконечная звезда (гексаграмма )
'none'Маркеров нет

Размер маркера, заданный как положительное значение в точках, где 1 точка = 1/72 дюйма.

Выходные аргументы

свернуть все

StackedLineChart объект, который является автономной визуализацией. Использование s для установки свойств на совмещенный график после создания.

Подробнее о

свернуть все

Автономная визуализация

Автономная визуализация является графиком, предназначенной для специального назначения, которая работает независимо от других графиков. В отличие от других графиков, таких как plot и surfавтономная визуализация имеет встроенный в нее предварительно сконфигурированный объект осей, и некоторые индивидуальные настройки недоступны. Автономная визуализация также имеет следующие характеристики:

  • Он не может быть объединен с другими графическими элементами, такими как линии, закрашенные фигуры или поверхности. Таким образом, hold команда не поддерживается.

  • The gca функция может вернуть объект графика как текущие системы координат.

  • Можно передать объект графика во многие функции MATLAB, которые принимают объект осей как входной параметр. Например, можно передать объект графика в title функция.

Совет

  • Для интерактивного исследования данных в совмещенный график используйте эти функции.

    • Масштабирование - Использование колеса прокрутки для масштабирования.

    • Панорамирование - щелкните и перетащите совмещенный график, чтобы панорамировать значения X.

    • Data Cursor - наведите указатель мыши на местоположение, чтобы отобразить значения y для каждого графика.

Введенный в R2018b