필터 지우기
필터 지우기

How to plot the sample mean in a scatter plot?

조회 수: 12 (최근 30일)
Agustin
Agustin 2016년 2월 4일
댓글: Agustin 2016년 2월 4일
Hi; Yesterday I had a question about the gscatter command and with the help I got here, I got the results that I wanted:
% Class 1
x1 = [16; 18; 20; 11; 17; 8; 14; 10; 4; 7;];
y1 = [13; 13; 13; 12; 12; 11; 11; 10; 9; 9];
class1 = [x1 y1];
% Class 2
x2 = [8; 9; 6; 8; 5; 7; 4; 6; 4; 3];
y2 = [8; 7; 7; 6; 5; 5; 4; 3; 2; 2];
class2 = [x2 y2];
% Class 3
x3 = [19; 19; 17; 17; 16; 14; 13; 13; 11; 11];
y3 = [6; 3; 8; 1; 4; 5; 8; 1; 6; 3];
class3 = [x3 y3];
figure(1)
x = [x1;x2;x3];
y = [y1;y2;y3];
grp = [ones(size(x1));2*ones(size(x2));3*ones(size(x3))]; % Grouping variableis the class number for each observation in Band 1 and Band 2
gscatter(x,y,grp,'brg','.xo'), xlabel('Band 1'), ylabel('Band 2'), title('Data of Each Class in a Two-Dimensional Vector Space'), legend('Class 1', 'Class 2', 'Class 3')
Now, I need to plot the sample mean of each class on the plot but I can't seem to find what I'm doing wrong. The code is as follows:
% b - Compute the sample means and sample covariance matrices for each class and plot the means in the same vector space with the data
% Class 1
M1 = mean(class1) % Sample Mean of Class 1
C1 = cov(class1) % Covariance Matrix of Class 1
% Class 2
M2 = mean(class2) % Sample Mean of Class 2
C2 = cov(class2) % Covariance Matrix of Class 2
% Class 3
M3 = mean(class3) % Sample Mean of Class 3
C3 = cov(class3) % Covariance Matrix of Class 3
figure(2)
x = [x1;x2;x3];
y = [y1;y2;y3];
grp = [ones(size(x1));2*ones(size(x2));3*ones(size(x3))]; % Grouping variableis the class number for each observation in Band 1 and Band 2
gscatter(x,y,grp,'brg','.xo'), xlabel('Band 1'), ylabel('Band 2'), title('Data of Each Class in a Two-Dimensional Vector Space with the Sample Means')
hold on
plot(M1(1,1),M1(1,2),'b')
hold on
plot(M2(1,1),M2(1,2),'r')
hold on
plot(M3(1,1),M3(1,2),'g'),legend('Class 1','Class 2','Class 3','Mean_Class 1','Mean_Class 2','Mean_Class 3')
The mean of each class is not shown in the figure. How can I plot the sample mean of each class?

채택된 답변

Image Analyst
Image Analyst 2016년 2월 4일
편집: Image Analyst 2016년 2월 4일
You didn't make an appropriate marker. Make the last chunk of your code this, and it will do it.
figure(2)
x = [x1;x2;x3];
y = [y1;y2;y3];
grp = [ones(size(x1));2*ones(size(x2));3*ones(size(x3))]; % Grouping variableis the class number for each observation in Band 1 and Band 2
gscatter(x,y,grp,'brg','.xo');
xlabel('Band 1');
ylabel('Band 2');
title('Data of Each Class in a Two-Dimensional Vector Space with the Sample Means', 'FontSize', 24)
hold on
plot(M1(1,1),M1(1,2), 'b*', 'MarkerSize', 18, 'LineWidth', 2)
plot(M2(1,1),M2(1,2), 'r*', 'MarkerSize', 18, 'LineWidth', 2)
plot(M3(1,1),M3(1,2), 'g*', 'MarkerSize', 18, 'LineWidth', 2)
legend('Class 1','Class 2','Class 3','Mean of Class 1','Mean of Class 2','Mean of Class 3')
grid on;
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Give a name to the title bar.
set(gcf, 'Name', 'Demo by Augustin', 'NumberTitle', 'Off')
  댓글 수: 1
Agustin
Agustin 2016년 2월 4일
Thank you so much! This was very helpful.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Design Condition Indicators Interactively에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by