Pie Charts in MATLAB®

How to make Pie Charts plots in MATLAB® with Plotly.


Plotly is known for its graphing libraries, but it's also a broader ecosystem for building interactive data apps, AI data analysis tools, and deploying and hosting Dash apps. Explore the full set of tools and platforms designed to help turn data into action. Discover Plotly.

Note: We are retiring documentation for R, MATLAB, Julia, and F#. Learn more about this change here.

Create Pie Chart with Offset Slices

Create a pie chart of vector X.

X = [1 3 0.5 2.5 2];
pie(X)

fig2plotly(gcf);

Offset the second and fourth pie slices by setting the corresponding explode elements to 1.

X = [1 3 0.5 2.5 2];

explode = [0 1 0 1 0];
pie(X,explode)

fig2plotly(gcf);

Specify Text Labels for Pie Chart

Create a pie chart of vector X and label the slices.

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
pie(X,labels)

fig2plotly(gcf);

Modify Text Label for Pie Chart

Create a labeled pie chart, and then modify the color and font size of the text labels.

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
p = pie(X,labels);

fig2plotly(gcf);

Get the text object for the label 'Profit'. Change its color and font size. Use dot notation to set properties.

X = 1:3;
labels = {'Taxes','Expenses','Profit'};
p = pie(X,labels);

t = p(6);
t.BackgroundColor = 'cyan';
t.EdgeColor = 'red';
t.FontSize = 14;

fig2plotly(gcf);

Specify Format for Percentage Labels

Create a pie chart, and specify a format expression to display each label with three digits after the decimal point. To include a percent sign in the labels, specify '%%' at the end of the expression.

X = [1/3 2/3];
pie(X,'%.3f%%')

fig2plotly(gcf);

Plot Partial Pie Chart

Create a pie chart of vector X where the sum of the elements is less than 1.

X = [0.19 0.22 0.41];
pie(X)

fig2plotly(gcf);

pie draws a partial pie because the sum of the elements is less than 1.

Compare Two Pie Charts

Create vectors y2010 and y2011, that contain financial data for two years. Then create a cell array containing the labels for the values.

y2010 = [50 0 100 95];
y2011 = [65 22 97 120];
labels = {'Investments','Cash','Operations','Sales'};

Create a 1-by-2 tiled chart layout, and display two pie charts that each have a title. Then display a shared legend in the east tile of the layout. To do this, call the legend function with a return argument to store the legend object. Then move the legend to the east tile by setting the Layout.Tile property to 'east'.

y2010 = [50 0 100 95];
y2011 = [65 22 97 120];
labels = {'Investments','Cash','Operations','Sales'};

t = tiledlayout(1,2,'TileSpacing','compact');

% Create pie charts
ax1 = nexttile;
pie(ax1,y2010)
title('2010')

ax2 = nexttile;
pie(ax2,y2011)
title('2011')

% Create legend
lgd = legend(labels);
lgd.Layout.Tile = 'east';

fig2plotly(gcf);

Plot Categorical Pie Chart with Offsets

Plot a categorical pie chart with offset slices corresponding to categories.

X = categorical({'North','South','North','East','South','West'});
explode = {'North','South'};
pie(X,explode)

fig2plotly(gcf);

Now, use a logical vector to offset the same slices.

X = categorical({'North','South','North','East','South','West'});

explode = [0 1 1 0];
pie(X,explode)

fig2plotly(gcf);

Plot Categorical Pie Chart with Labels

Plot a categorical pie chart without any offset slices and label the slices. When X is of data type categorical you must specify the input argument explode. To specify labels without any offset slices, specify explode as an empty cell array, and labels as the labels.

X = categorical({'North','South','North','East','South','West'});
explode = {};
labels = {'E','N','S','W'};
pie(X,explode,labels)

fig2plotly(gcf);

Now, offset a slice and label all slices.

X = categorical({'North','South','North','East','South','West'});
explode = {'West'};
labels = {'E','N','S','W'};
pie(X,explode,labels)

fig2plotly(gcf);