scatterの点にデータ(色)を載せる方法
59 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hiroki Takeda
el 21 de Abr. de 2022
Comentada: Atsushi Ueno
el 22 de Abr. de 2022
3つのデータ(A、B、C)があります。それぞれ、90×72のデータです。
scatterで、AとBをし、その点の色をCにしたいと考えています。Cのデータのカラーはjetなどで構いません。
色を指定する方法は見つかるのですが、Cのデータを乗せる方法がわからず困っていました。
ご教示くださりますと幸いです。よろしくお願いいたします。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 21 de Abr. de 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 comentarios
Atsushi Ueno
el 22 de Abr. de 2022
@Hernia Babyさん > の仰る通りです。
私の回答は、x,y共に行列で入力し「RGB3成分による点毎のカスタム色割り当て」を検討した状態のままです。因みにこれもx,yがベクトルでないと出来ず、その仕様に気付いて行列をベクトルに変えました。
Más respuestas (1)
Hernia Baby
el 21 de Abr. de 2022
引数でサイズの次が色なので、そこに設定してください。
[A,B,C]=peaks(90);
scatter(A(:),B(:),[],C(:))
Ver también
Categorías
Más información sobre データ分布プロット en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!