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

59 Ansichten (letzte 30 Tage)
Hiroki Takeda
Hiroki Takeda am 21 Apr. 2022
Kommentiert: Atsushi Ueno am 22 Apr. 2022
3つのデータ(A、B、C)があります。それぞれ、90×72のデータです。
scatterで、AとBをし、その点の色をCにしたいと考えています。Cのデータのカラーはjetなどで構いません。
色を指定する方法は見つかるのですが、Cのデータを乗せる方法がわからず困っていました。
ご教示くださりますと幸いです。よろしくお願いいたします。

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 21 Apr. 2022
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 Kommentare
Hiroki Takeda
Hiroki Takeda am 22 Apr. 2022
ご丁寧にありがとうございます。
無事に解決できました。
Atsushi Ueno
Atsushi Ueno am 22 Apr. 2022
@Hernia Babyさん > の仰る通りです。
私の回答は、x,y共に行列で入力し「RGB3成分による点毎のカスタム色割り当て」を検討した状態のままです。因みにこれもx,yがベクトルでないと出来ず、その仕様に気付いて行列をベクトルに変えました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!