Scattered plot for different groups of data, subplot?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
wesleynotwise
el 29 de Mayo de 2017
Editada: Walter Roberson
el 30 de Mayo de 2017
Let say I have a table which contains three columns, Country (4 countries), Variable x and Response y. I would like to know how to create a plot for each country in a single figure?
gscatter (Table.x, Table.y, Table.Country) %This only allows me to plot all four in one graph.
0 comentarios
Respuesta aceptada
Walter Roberson
el 29 de Mayo de 2017
[u_country, ~, idx] = unique(Table.Country);
for K = 1 : 4
subplot(2,2,K)
mask = idx == K;
gscatter(Table.x(mask), Table.y(mask), Table.Country(mask));
title( u_country ); %you might need to adjust this depending on the class() of your country data
end
4 comentarios
Walter Roberson
el 30 de Mayo de 2017
Editada: Walter Roberson
el 30 de Mayo de 2017
See https://www.mathworks.com/matlabcentral/answers/406-how-do-i-skip-items-in-a-legend#answer_563 for turning off the legend of the extra lines.
If you want to change the order that the countries appear, then you can use
display_order = [2 4 3 1]; %for example
and
% This is Figure 2
figure(2)
[u_country, ~, idx] = unique(Table.Country);
for K = 1 : 4
subplot(2,2,K)
this_country = display_style(K);
mask = idx == this_country;
gscatter(Table.x(mask), Table.y(mask), Table.Country(mask));
hold on
m = 20:10:120; n = 0*m;
lineAtX = plot (m,n, 'k', 'Linewidth', 1.75)
hold off
title( char(u_country(this_country)) );
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!