stackedplot

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

Синтаксис

s = stackedplot(tbl)
s = stackedplot(tbl,vars)
s = stackedplot(___,'XVariable',xvar)
s = stackedplot(X,Y)
s = stackedplot(Y)
s = stackedplot(___,LineSpec)
s = stackedplot(___,Name,Value)
s = stackedplot(parent,___)

Описание

пример

s = stackedplot(tbl) строит график переменных таблицы или расписания в сложенном графике и возвращает объект StackedLineChart. Можно использовать s, чтобы изменить свойства сложенного графика после того, как вы создали его. Для списка свойств смотрите StackedLineChart Properties.

Функция строит график переменных в отдельных осях Y, сложенных вертикально. Переменные совместно используют общую ось X.

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

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

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

пример

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

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

пример

s = stackedplot(X,Y) строит график столбцов Y по сравнению с векторным X.

s = stackedplot(Y) строит график столбцов Y по сравнению с их номером строки. Диапазоны шкал оси X от 1 до количества строк в Y.

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

пример

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

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

Примеры

свернуть все

Считайте данные от электронной таблицы до таблицы. Затем преобразуйте таблицу в расписание. Первая переменная, которая содержит даты и времена, 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. Функция stackedplot строит график значений от Loss, Customers и переменных RestorationTime, с каждой переменной, построенной график вдоль ее собственной оси Y. Однако график не включает Region и переменные Cause, потому что они содержат данные, которые не могут быть отображены на графике.

s = stackedplot(tbl);

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

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

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

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

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

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

  • Переупорядочьте значения в свойстве DisplayVariables объекта StackedLineChart: 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 = 1x2 cell array
    {1x2 cell}    {'Weight'}

stackedplot(tbl,vars);

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

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

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

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

Функция 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)

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;

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

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

    Color
    MarkerFaceColor
    MarkerEdgeColor
    LineStyle
    LineWidth
    Marker
    MarkerSize
    PlotType

Измените второй график на график рассеивания и третий график к графику ступеньки, с помощью свойства PlotType.

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

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

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

    YLimits
    LegendLabels
    LegendLocation
    LegendVisible

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

свернуть все

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

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

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

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

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

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

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

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

Пример: '-или' красная пунктирная линия с круговыми маркерами

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

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Маркер', 'o', 'MarkerSize', 10

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

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

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Пример: 'blue'

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

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

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

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

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

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

'none'Никакая строкаНикакая строка

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

Пример: 0.75

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

ЗначениеОписание
OКруг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
XКрест
square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
VНисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' or 'h'Шестиконечная звезда (гексаграмма)
'none'Никакие маркеры

Пример: 'Маркер'', +'

Пример: 'Маркер', 'ромб'

Размер маркера, заданный как положительное значение в точках.

Пример: 10

Советы

  • Чтобы в интерактивном режиме исследовать данные в вашем сложенном графике, используйте эти функции.

    • Изменение масштаба — Использование колесико прокрутки, чтобы масштабировать.

    • Панорамирование — Перетаскивание сложенный график панорамировать через x-значения.

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

Представленный в R2018b

Была ли эта тема полезной?