Setting marker and colour in gscatter by the categorical group string
71 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have datasets that will always have a category attached (species of animal) and I want to be able to define that each species has a different marker type. I will likely use this to also set the colour by a second group – the site from where the animals came.
I have seen code for having Matlab use a different colour for each group, but not a different marker.
More importantly, I want to be able to define these so they are always the same (cattle are always circles and horses are always squares, etc).
0 Kommentare
Antworten (2)
Subhadeep Koley
am 7 Nov. 2019
Hi, you can refer to the example code below, which plots the height and weight of various animals grouped by species and country of origin. (Use the attached demoDataMultiScattered.mat file)
% Load the demo data
load demoDataMultiScattered.mat;
% Create grouping variable 'g'
g = {country, species};
% Declare colors and markers
colors = 'rgbcmyk'; markers = 'hsdp';
% Plot the data
figure('Color','w');
gscatter(height,weight, g,colors,'hsdp',8);
legend('Location','northeastoutside');
title('Multi Grouped Scatter Plot');
xlabel('Height (in cm)');
ylabel('Weight (in Kilograms)');
Hope this helps!
0 Kommentare
Derek Hamilton
am 7 Nov. 2019
2 Kommentare
Subhadeep Koley
am 7 Nov. 2019
Yes you can use loop. But plotting using a loop is inefficient. As, it generates a huge number of individual graphic objects instead of just one. You can do that without using any loop also.
Refer the code below
% Load the demo data
load demoDataMultiScattered.mat;
% Create grouping variable 'g'
g = {country, species};
% Declare colors and markers
colors = 'rrrrggggbbbbmmmm'; markers = 'hsdp';
% Plot the data
figure('Color','w');
gscatter(height,weight, g, colors, markers, 8);
legend('Location','northeastoutside');
title('Multi Grouped Scatter Plot');
xlabel('Height (in cm)');
ylabel('Weight (in Kilograms)');
Hope this helps!
Marcus Leiwe
am 19 Aug. 2020
I realise this is jumping on an old question but what if in one of the cases that group is now empty. I find that gscatter is exluding the group
Siehe auch
Kategorien
Mehr zu Animation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!