How to plot with plotconfusion into subplots?

8 visualizaciones (últimos 30 días)
Antje
Antje el 31 de Mayo de 2013
Comentada: Fatih Erden el 8 de Sept. de 2018
Hi,
I have a problem with subplots of the figures created with plotconfusion. I tried it like this, but the result is only one plot, no subplot.
a=[1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0];
b=[1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0];
c=[1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0]
figure(1)
subplot(2,1,1)
plotconfusion(a,b)
subplot(2,1,2)
plotconfusion(a,c)
Does somebody know how to make it in subplots? Thanks for your help!

Respuesta aceptada

Daniel Shub
Daniel Shub el 31 de Mayo de 2013
The code for plotconfusion is available. It doesn't support an axis handle argument and does not plot into the current axis, rather it overwrites the figure. It seems to be a pretty complicated function that is doing much more than just plotting. I would suggest looking at the code and extracting the plotting aspects and writing your own function.
  4 comentarios
Antje
Antje el 31 de Mayo de 2013
Thanks a lot! As far as I understood the code the picture generated by plotconfusion already consists of subplots. Therefore it is not easily possible to put some of them together in one figure. At least good to know! ;)
José-Luis
José-Luis el 31 de Mayo de 2013
Just curious, but my answer seems to do just that. What was wrong with it?

Iniciar sesión para comentar.

Más respuestas (1)

José-Luis
José-Luis el 31 de Mayo de 2013
Editada: José-Luis el 31 de Mayo de 2013
You could always copy all the objects generated by plotconfusion into the subplot axes:
a=[1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0];
b=[1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0];
c=[1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0];
figure(1)
plotconfusion(a,b)
aH(1) = gca;
acH(1) = {flipud(allchild(aH(1)))};
figure(2)
plotconfusion(a,c)
aH(2) = gca;
acH(2) = {flipud(allchild(gca))};
figure(3)
sH(1) = subplot(2,1,1);
sH(2) = subplot(2,1,2);
for ii = 1:numel(acH{1});
copyobj(acH{1}(ii),sH(1));
copyobj(acH{2}(ii),sH(2));
end
set(sH,'Visible','off');
  3 comentarios
Alex Paul
Alex Paul el 21 de Jun. de 2018
I know this is a super dead question, but adding this after the subplot initialization parts should fix the problem:
a=[1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0];
b=[1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 0 1 0];
c=[1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0];
figure(1)
plotconfusion(a,b)
aH(1) = gca;
acH(1) = {flipud(allchild(aH(1)))};
figure(2)
plotconfusion(a,c)
aH(2) = gca;
acH(2) = {flipud(allchild(gca))};
figure(3)
sH(1) = subplot(2,1,1);
set(sH(1),'YDir', 'reverse') %added
sH(2) = subplot(2,1,2);
set(sH(2),'YDir', 'reverse') %added
for ii = 1:numel(acH{1});
copyobj(acH{1}(ii),sH(1));
copyobj(acH{2}(ii),sH(2));
end
set(sH,'Visible','off');
Fatih Erden
Fatih Erden el 8 de Sept. de 2018
Thank you both. I was looking for a solution to put the pop-up confusion plot in a gui. It worked perfectly.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by