exponenta event banner

stackedplot

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

Описание

пример

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

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

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

stackedplot функция отображает все числовые, логические, категориальные переменные, переменные datetime и duration 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 аргументы пары. Список свойств см. в разделе Свойства StingLineChart. Используйте эту опцию с любой из комбинаций входных аргументов в предыдущих синтаксисах. Параметры пары «имя-значение» применяются ко всем графикам на сложенном графике. Заключите каждое имя свойства в кавычки.

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

пример

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

Примеры

свернуть все

Считывание данных из электронной таблицы в таблицу. Затем преобразуйте таблицу в расписание. Первая переменная, содержащая даты и время, 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 переменные, поскольку они содержат данные, которые невозможно вывести на печать.

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

  • Вернуть a 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.

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, duration или логический вектор. Длина X должно равняться количеству строк Y.

y-значения, указанные как числовой, datetime, duration, категориальный или логический массив. 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

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

Цвет линии, указанный как триплет 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 команда не поддерживается.

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

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

Совет

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

    • Зумирование (Zoom) - используйте колесо прокрутки для зумирования.

    • Панорамирование (Pan) - щелкните и перетащите сложенный график для панорамирования по значениям x.

    • Курсор данных - наведите курсор на местоположение для отображения значений y для каждого графика.

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