Borrar filtros
Borrar filtros

How to make this pie chart?

1 visualización (últimos 30 días)
BN
BN el 11 de Abr. de 2020
Comentada: Giuseppe Degan Di Dieco el 16 de Jun. de 2021
Hey all, I want to know is possible to have a pie chart with 5 pies so that I can change the color of each pie that I want? Just like this:
I don't have any data sets, in this case, I just want pie chart with 5 equal parts with ability to change colors.
Please let me know is this possible to do this in Matlab?
Best Regards.

Respuesta aceptada

Tommy
Tommy el 11 de Abr. de 2020
One option:
p = pie(ones(1,5)); % create a pie chart with 5 equal slices
t = p(2:2:end); % get the handles to the text labels
p = p(1:2:end); % get the handles to the patches
delete(t) % delete the text labels
p(2).FaceColor = 'g'; % change the color of the second patch to green
  2 comentarios
BN
BN el 11 de Abr. de 2020
Thank you so much !
Les Beckham
Les Beckham el 11 de Abr. de 2020
FYI
If you prefer lighter colors like in the example in your question, you can experiment with the FaceAlpha property. For example, to make the green slice in Tommy's solution lighter, you could do this:
p(2).FaceAlpha = 0.3;

Iniciar sesión para comentar.

Más respuestas (1)

Geoff Hayes
Geoff Hayes el 11 de Abr. de 2020
Behzad - yes, you can change the colours of each piece of the pie. To generate a pie chart with five equal pieces, just do
hPatchAndTextObjects = pie(ones(1,5))
The hPatchAndTextObjects is an array of handles to the patch and text graphics objects. On my version of MATLAB, the ordering is patch object, text object, patch object, text object, etc. To change the colour of the first patch object, just do
set(hPatchAndTextObjects(1), 'FaceColor', [1 1 0])
which will set the colour to yellow.
  2 comentarios
BN
BN el 13 de Abr. de 2020
Thank you so much +1
Giuseppe Degan Di Dieco
Giuseppe Degan Di Dieco el 16 de Jun. de 2021
Hi guys,
hope you're still reading these days.
@Geoff Hayes's tip is a very good one, so you can set up all other patches' color with a for loop.
I posted the code too, it may be of help.
Thanks for maintaining the community, and best.
ax3 = nexttile;
pRoadRailway = pie(ax3, heightsRoadRailway, labelsRoadRailway);
legend(legendRoadRailway, 'Location', 'southoutside');
myColors = [0 0.4470 0.7410; ...
0.8500 0.3250 0.0980;...
0.9290 0.6940 0.1250];
%
for i = 1:2:4
set(pRoadRailway(i), 'FaceColor', myColors(i, :))
end

Iniciar sesión para comentar.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by