Box Plots in MATLAB®

How to make Box Plots plots in MATLAB® with Plotly.


Default Boxplot

data1 = normrnd(5,1,100,1);
data2 = normrnd(6,1,100,1);

fig = figure;
boxplot([data1,data2])

fig2plotly(fig);

Boxplot with Jitter

data = {...
  struct(...
    'y', [0, 1, 1, 2, 3, 5, 8, 13, 21], ...
    'boxpoints', 'all', ...
    'jitter', 0.3, ...
    'pointpos', -1.8, ...
    'type', 'box')...
};

plotly(data);

Grouped Box Plot

x = {'day 1' 'day 1' 'day 1' 'day 1' 'day 1' 'day 1' ...
     'day 2' 'day 2' 'day 2' 'day 2' 'day 2' 'day 2'};

trace1 = struct(...
  'y', [0.2, 0.2, 0.6, 1.0, 0.5, 0.4, 0.2, 0.7, 0.9, 0.1, 0.5, 0.3], ...
  'x', x, ...
  'name', 'kale', ...
  'marker', struct('color', '#3D9970'), ...
  'type', 'box');

trace2 = struct(...
  'y', [0.6, 0.7, 0.3, 0.6, 0.0, 0.5, 0.7, 0.9, 0.5, 0.8, 0.7, 0.2], ...
  'x', x, ...
  'name', 'radishes', ...
  'marker', struct('color', '#FF4136'), ...
  'type', 'box');

trace3 = struct(...
  'y', [0.1, 0.3, 0.1, 0.9, 0.6, 0.6, 0.9, 1.0, 0.3, 0.6, 0.8, 0.5], ...
  'x', x, ...
  'name', 'carrots', ...
  'marker', struct('color', '#FF851B'), ...
  'type', 'box');

data = {trace1, trace2, trace3};

layout = struct(...
    'yaxis', struct(...
      'title', 'normalized moisture', ...
      'zeroline', false), ...
    'boxmode', 'group');

plotly(data, struct('layout', layout));