sbioplot

Отобразите результаты симуляции на одном рисунке

Описание

пример

sbioplot(sd) графики каждой симуляции выполняются из sd, а SimData объект или массив объектов на том же рисунке. График является временным графиком каждого состояния в sd. Рисунок также показывает иерархическое отображение всех запусков как различных узлов в дереве, и можно выбрать, какие запуски отображать.

пример

sbioplot(sd,fcnHandle,xArgs,yArgs,Name,Value) строит графики результатов симуляции путем вызова указателя на функцию fcnHandle с входами sd, xArgs, и yArgsи использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера можно задать метки X и Y для графика. xArgs и yArgs должны быть массивами ячеек или строковыми векторами имен состояний для построения графика.

Примеры

свернуть все

Постройте график данных о добыче от хищника из стохастически моделируемой модели лотки с помощью пользовательской функции (plotXY).

Загрузите модель. Установите тип решателя SSA, чтобы выполнить стохастические симуляции и установите время остановки равным 3.

sbioloadproject lotka;
cs              = getconfigset(m1);
cs.SolverType   = 'SSA';
cs.StopTime     = 3;
rng('default') % For reproducibility

Установите количество запусков и используйте sbioensemblerun для симуляции.

numRuns = 2;
sd      = sbioensemblerun(m1,numRuns);

Постройте график данных моделирования. По умолчанию sbioplot показывает график времени каждого вида для каждого запуска.

sbioplot(sd); 

Figure contains an axes. The axes with title States versus Time contains 8 objects of type line. These objects represent Run 1 - x, Run 1 - y1, Run 1 - y2, Run 1 - z, Run 2 - x, Run 2 - y1, Run 2 - y2, Run 2 - z.

Постройте график выбранных состояний друг против друга; в этом случае постройте график популяции жертв от популяции хищников. Используйте функцию plotXY (показан в конце этого примера), чтобы построить график моделируемых данных y1 (добыча) по сравнению с данными y2 (хищник). Задайте функцию как указатель на функцию.

Если вы используете файл live скрипта для этого примера, plotXY функция уже включена в конец файла. В противном случае необходимо задать plotXY функцию в конце файла .m или .mlx или добавить его как файл по пути MATLAB.

sbioplot(sd,@plotXY,{'y1'},{'y2'},'xlabel','y1','ylabel','y2','title','Prey versus Predator');

Figure contains an axes. The axes with title Prey versus Predator contains 2 objects of type line. These objects represent Run 1 - y1 vs y2, Run 2 - y1 vs y2.

Задайте функцию plotXY

sbioplot принимает указатель на функцию для функции с сигнатурой:

function [handles,names] = functionName(sd,xArgs,yArgs).

The plotXY графики функций двух выбранных состояний друг против друга. Первый входной sd - данные моделирования (SimBiology SimData объект или вектор объектов). В этом конкретном примере xArgs является массивом ячеек, содержащим имя вида, который будет нанесен на ось X, и yArgs является массивом ячеек, содержащим имя второго вида, который будет нанесен на ось y. Однако можно использовать входы xArgs и yArgs любым способом в пользовательской функции построения графика. Функция возвращается handles, массив указателей на функцию для линейных графиков и namesмассив ячеек из векторов символов, показанный на узлах, являющихся дочерними узлами узла Run в иерархическом отображении.

function [handles,names] = plotXY(sd,xArgs,yArgs)
    
% Select simulation data for each state from each run.
xData1 = selectbyname(sd(1),xArgs);
xData2 = selectbyname(sd(2),xArgs);
yData1 = selectbyname(sd(1),yArgs);
yData2 = selectbyname(sd(2),yArgs);

% Plot the species against each other.
fH1 = plot(xData1.Data,yData1.Data);
fH2 = plot(xData2.Data,yData2.Data);

% The first output, handles, is a two-dimensional array of handles of the line plots. It must be of size M x N, 
% where M is the number of line plots for each run and N is the number of runs.
handles = [fH1,fH2];

% The second output, names, must be a one-dimensional cell array of character vectors.
% Its length must be equal to the number of rows in handles, and the texts are displayed on the 
% nodes that are children of a Run node.
names = {'y1 vs y2'};
   
end

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

свернуть все

Результаты симуляции, заданные как SimData объект или вектор SimData объекты.

Этот аргумент соответствует первому входу функции, на которую ссылаются fcnHandle.

Пример: simdata

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

Функция должна иметь подпись:

function [handles,names] = functionName(sd,xArgs,yArgs).

Входы sd, xArgs, и yArgs те же входы, которые вы передаете при вызове sbioplot.

Первый выход handles является двумерным массивом указателей на линейные графики, сгенерированные функцией. Его размер должен быть P -by - R, где P количество линейных графиков, и R количество запусков.

Второй выходной names - одномерный массив ячеек из векторов символов, содержащий имена, отображаемые на узлах, являющихся дочерними узлами Run узла в иерархическом отображении. Длина names должно быть равно количеству строк в handles.

Пример: @plotXY

Типы данных: function_handle

Имена состояний для построения графика, заданные как строковый вектор или массив ячеек из векторов символов. Например, можно использовать xArgs для представления состояний, которые будут нанесены на x ось пользовательского графика.

Этот аргумент соответствует второму входу функции, на которую ссылаются fcnHandle.

Пример: {'y1'}

Типы данных: cell

Имена состояний для построения графика, заданные как строковый вектор или массив ячеек из векторов символов. Например, можно использовать yArgs для представления состояний, которые будут нанесены на y ось пользовательского графика .

Этот аргумент соответствует третьему входу функции, на которую ссылаются fcnHandle.

Пример: {'y2','z'}

Типы данных: cell

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

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

Пример: 'title','Species X versus Species Y' задает заголовок графика для осей.

Заголовок оси, заданный как разделенная разделенными запятой парами, состоящая из 'title' и вектор символов или строка.

Пример: 'title','Prey versus Predator'

Типы данных: char | string

Метка для x -оси графика, заданная как разделенная разделенными запятой парами, состоящая из 'xlabel' и вектор символов или строка.

Пример: 'xlabel','y1'

Типы данных: char | string

Метка для y -оси графика, заданная как разделенная разделенными запятой парами, состоящая из 'ylabel' и вектор символов или строка.

Пример: 'ylabel','y2'

Типы данных: char | string

Вопросы совместимости

расширить все

Поведение изменено в R2020a

См. также

|

Введенный в R2008a