stackedplot

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

Описание

пример

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×6 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×6 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×6 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=1×2 cell
    {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×4 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×4 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. Для каждого графика можно задать различный стиль линии, маркер, тип графика, и так далее.

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

Также можно получить доступ к отдельным осям 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Гексаграмма
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

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

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

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

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

Цвет линии, заданный как триплет 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'Никакие маркеры

Пример: 'Marker','+'

Пример: 'Marker','diamond'

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

Советы

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

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

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

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

Введенный в R2018b