分類器アプリ内の散布​図を自分で作る方法を​教えてください

分類器アプリ内の「散布図」を自分でも作りたのですが,やり方がわかりません.
データは分類器へインポートする形です.
応答子は3種類あります.応答子ごとに色を変えて2つの変数を散布図で表す方法を教えてください.
ファイル添付しております.
よろしくお願いします.

2 Comments

Hiro Yoshino
Hiro Yoshino on 20 Feb 2024
(tabledata.mat の中身が全て "1" でしたが合っていますか?)
Tadafumi Sugi
Tadafumi Sugi on 21 Feb 2024
失礼しました.
間違いです.こちらを使ってください.

Sign in to comment.

Answers (1)

Hiro Yoshino
Hiro Yoshino on 20 Feb 2024

1 vote

scatter 関数かなと思いますが、いかがでしょうか?:
a = rand(20,2);
b = rand(20,2);
scatter(a(:,1),a(:,2));
hold on
scatter(b(:,1),b(:,2));
legend("a","b");

6 Comments

Tadafumi Sugi
Tadafumi Sugi on 21 Feb 2024
これは,二つの変数に対して色分けされていると思うのですが,どうでしょうか?
もしそうであれば,違います.
私がやりたいことは変数への色付けではなく,応答子への色付けです.
前回のコメントへデータを新たに添付しているので,どうかよろしくお願いします.
Tadafumi Sugi
Tadafumi Sugi on 21 Feb 2024
label = categorical(x.Label);
Av_Ave = x.Av_Ave;
Av_AvCross = x.Av_AveCross;
x1 = Av_Ave(label=="E");
y1 = Av_AvCross(label =="E");
x2 = Av_Ave(label=="P");
y2 = Av_AvCross(label=="P");
x3 = Av_Ave(label=="R");
y3 = Av_AvCross(label=="R");
figure
h1 = scatter(x1,y1,"cyan");
hold on
h2 = scatter(x2,y2,"green");
hold on
h3 = scatter(x3,y3,"magenta");
legend("E","P","R")
できました.
変数が3つあるとき,forループで3通りの散布図を作りたいのですが,やり方がわかりません.
教えてください.
Tadafumi Sugi
Tadafumi Sugi on 21 Feb 2024
こちらデータになります.
こんな感じはどうでしょうか?
  • tiledlayout - 複数 axes 配置
  • nexttile - 次の axis 配置
  • colormap - カラーマップ取得
X = randn(20,3); % サンプルデータ
Y = randn(20,3); % サンプルデータ
tiledlayout("flow");
cmap = colormap(); % 異なる色を用意
for k=1:3
nexttile
scatter(X(:,k),Y(:,k),[],cmap(80*k,:));
title(sprintf("scatter #%d",k));
end
Tadafumi Sugi
Tadafumi Sugi on 22 Feb 2024
ありがとうございます.
勉強になりました.
forループを使用して、ラベル毎に分けた散布図を作成してみました。
load('tabledata.mat');
labels = unique(x.Label); %使用されているラベルの一覧を作成
figure;
for i = 1 : length(labels)
data = x(x.Label == labels(i), :); % テーブルデータから選択したラベルを持つデータを抽出
scatter(data.Av_Ave, data.Av_AveCross, 'DisplayName', labels(i)); % 散布図作成
hold on;
end
legend;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!