# plot

Plot data in Simulation Data Inspector

## Syntax

``plot(obj)``
``plot(ds,viewer)``
``runObj = plot(___)``

## Description

Use the `plot` function to plot data contained in objects such as `Dataset`, `SimulationOutput`, or `Signal` objects in the Simulation Data Inspector.

For more information about interactively plotting data in the Simulation Data Inspector and customizing the plot appearance, see Create Plots Using the Simulation Data Inspector.

To create a 2-D line plot in a MATLAB® figure, see `plot`.

````plot(obj)` plots the simulation results in the object `obj` in the Simulation Data Inspector and opens the Simulation Data Inspector. You can use the `plot` function to plot data and simulation results stored in an object such as: `Simulink.SimulationOutput``Simulink.SimulationData.Dataset``Simulink.SimulationData.Signal` When the input object contains fewer than eight signals, the Simulation Data Inspector layout changes to `1`-by-n, where n is the number of signals, and each subplot displays one signal. When the simulation results contain more than eight signals to plot, the Simulation Data Inspector layout changes to `1`-by-`1`, and the plot displays the first signal.```

example

````plot(ds,viewer)` displays data contained in a `Simulink.SimulationData.Dataset` or `Simulink.SimulationData.DatasetRef` object in the Simulation Data Inspector or Signal Preview window according to the value specified for `viewer`.```
````runObj = plot(___)` returns the `Simulink.sdi.Run` object that corresponds to the plotted data.```

## Examples

collapse all

Open the model `vdp`, which models the second-order Van der Pol differential equation. You can use the `plot` function to plot the simulation results in the Simulation Data Inspector.

```mdl = "vdp"; open_system(mdl)```

Configure the model to log signals, outputs, and states.

```set_param(mdl,"SignalLogging","on") set_param(mdl,"SaveOutput","on") set_param(mdl,"SaveState","on")```

Mark the `x1` and `x2` signals for logging.

```Simulink.sdi.markSignalForStreaming('vdp/Mu',1,'on') Simulink.sdi.markSignalForStreaming('vdp/Product',1,'on') Simulink.sdi.markSignalForStreaming('vdp/Square',1,'on') Simulink.sdi.markSignalForStreaming('vdp/Sum',1,'on')```

Simulate the model and return all logged data as a single simulation output named `out`. The model logs data using the `Dataset` format, so all the logged data streams to the Simulation Data Inspector during simulation.

`out = sim(mdl);`

Use the `plot` function to plot all the simulation results in the Simulation Data Inspector. The Simulation Data Inspector updates to a `1`-by-`8` layout and plots one signal on each subplot.

`plot(out)`

You can also use the `plot` function to plot data for a single signal or a subset of the simulation results. When you plot the data for a single signal, the Simulation Data Inspector always imports the data for the signal into a new run.

The `Simulink.SimulationOutput` object contains a property for each logging variable. Access the signal logging data in the property `logsout`.

`logsout = out.logsout`
```logsout = Simulink.SimulationData.Dataset 'logsout' with 4 elements Name BlockPath ____ ___________ 1 [1x1 Signal] '' vdp/Mu 2 [1x1 Signal] '' vdp/Product 3 [1x1 Signal] '' vdp/Square 4 [1x1 Signal] '' vdp/Sum - Use braces { } to access, modify, or add elements using index. ```

Use the `get` function for the `Dataset` object to access the data for the first element, which contains the data for a single logged signal.

`sig1 = get(logsout,1);`

When you plot the signal data, the Simulation Data Inspector imports the signal into a new run, updates the layout to `1`-by-`1`, and plots the signal.

`plot(sig1)`

Create two `timeseries` objects.

```ts1 = timeseries([0;20],[0;10]); ts2 = timeseries([0;40],[0;10]); ```

Create a `Dataset` object. Then, add the `timeseries` objects to the `Dataset` object.

```ds = Simulink.SimulationData.Dataset; ds = addElement(ds,ts1,"timeseries1"); ds = addElement(ds,ts2,"timeseries2");```

Plot the `Dataset` object in the Simulation Data Inspector.

`plot(ds)`

## Input Arguments

collapse all

Data to plot in Simulation Data Inspector, specified as one of these objects:

When some or all of the data in a `Simulink.SimulationOutput` object is in a Simulation Data Inspector run, the `plot` function opens the Simulation Data Inspector and plots all the signals in the run. When the `SimulationOutput` object does not correspond to a run in the Simulation Data Inspector, the `plot` function imports the data into a new run.

When you use the `plot` function to plot a single signal, the `plot` function always imports the data for the signal into a new run.

You can also use the `Simulink.sdi.plot` function to programmatically plot any of the listed objects as well as `timeseries` and `timetable` data.

Example: `plot(out)` plots the contents of the `Simulink.SimulationOutput` object `out` in the Simulation Data Inspector and opens the Simulation Data Inspector.

Data to plot in specified visualization tool, specified as a `Simulink.SimulationData.Dataset` object or a `Simulink.SimulationData.Datasetref` object.

Viewer used to plot data, specified as `"datainspector"` or `"preview"`. When you do not specify the `viewer` input, the `plot` function plots data in the Simulation Data Inspector.

## Output Arguments

collapse all

Run that corresponds to the plotted data, returned as a `Simulink.sdi.Run` object.

## Version History

Introduced in R2019b

expand all