scatterの点にデータ(色)を載せる方法

36 ビュー (過去 30 日間)
Hiroki Takeda
Hiroki Takeda 2022 年 4 月 21 日
コメント済み: Atsushi Ueno 2022 年 4 月 22 日
3つのデータ(A、B、C)があります。それぞれ、90×72のデータです。
scatterで、AとBをし、その点の色をCにしたいと考えています。Cのデータのカラーはjetなどで構いません。
色を指定する方法は見つかるのですが、Cのデータを乗せる方法がわからず困っていました。
ご教示くださりますと幸いです。よろしくお願いいたします。

採用された回答

Atsushi Ueno
Atsushi Ueno 2022 年 4 月 21 日
scatter(x,y,sz,c)の文法で色の設定が出来ます。一つ問題があって、x,yが共に行列だと1点ずつ色設定する事が出来ず、列毎にしか色を分けられません。x,yに行列ではなくベクトルを入力すれば1点ずつ色設定することが出来ます。下記に例を示します。
[A B] = meshgrid(1:72, 1:90); C = rand(90,72); % A,B,Cはそれぞれ90行72列の行列(値は例)
A = A(:); % 行列A(90行72列)⇒ベクトルA(6480行1列)に変換
B = B(:); % 行列B(90行72列)⇒ベクトルB(6480行1列)に変換
J = jet(256); % 256行3列のカラーマップjetを得る(256行は例。色の分解能)
C = ceil(C./ max(C,[],'all').* 256); % Cを最大値で割り1~256に正規化
C = J(C, :); % Cのデータ⇒RGB値に変換(6480行3列)
scatter(A,B,1,C);
  4 件のコメント
Hiroki Takeda
Hiroki Takeda 2022 年 4 月 22 日
ご丁寧にありがとうございます。
無事に解決できました。
Atsushi Ueno
Atsushi Ueno 2022 年 4 月 22 日
@Hernia Babyさん > の仰る通りです。
私の回答は、x,y共に行列で入力し「RGB3成分による点毎のカスタム色割り当て」を検討した状態のままです。因みにこれもx,yがベクトルでないと出来ず、その仕様に気付いて行列をベクトルに変えました。

サインインしてコメントする。

その他の回答 (1 件)

Hernia Baby
Hernia Baby 2022 年 4 月 21 日
引数でサイズの次が色なので、そこに設定してください。
[A,B,C]=peaks(90);
scatter(A(:),B(:),[],C(:))
  1 件のコメント
Hiroki Takeda
Hiroki Takeda 2022 年 4 月 22 日
ベクトルにするのができておりませんでした。丁寧にありがとうございました。

サインインしてコメントする。

カテゴリ

Help Center および File Exchangeカラーマップ についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!