MATLAB: How to skip legend names if their values equal zero on particular piechat

graphlegendMATLABpiepiechartplotsubplot

I am using the following code to plot piechart
labels = {Costs.name};
pie([Costs.GESAMT_ohne_D_Money_min]);
legend(labels);
Sometimes Costs.GESAMT_ohne_D_Money_min could have zero values so they are not printed on pie chart. Because of that labeling becomes wrong as it is not skipping the non-positive values.
How to fix that?

Best Answer

Try this:
zeroIndexes = [Costs.GESAMT_ohne_D_Money_min] <= 0
labels2 = labels(zeroIndexes); % Extract only the non-zero numbers.

pieData = [Costs.GESAMT_ohne_D_Money_min]; % Initialize
pieData = pieData(zeroIndexes); % Extract only the non-zero numbers.
pie(pieData);
labels(labels2);