極座標3次元プロットでのカラーマップ指定方法
Mostrar comentarios más antiguos
極座標の散布図を作成し、Z方向の値をカラーレンジでプロットしたいです。プロットはできましたが、カラーマップがデフォルトで固定されており、jetに変更できませんでした。修正方法を教えてください。
clear
z1=[1 2 3 4 5 6] %カラーにしたい値を定義
theta=deg2rad(60); %ラジアンに変換、60度間隔にプロットする theta_end=2*pi-deg2rad(theta); %最後のプロット点を定義
% %散布図 半径2で定義 T=0:theta:theta_end; %0度からスタートして 等間隔に1周する
polarscatter(T,2,z1,'filled','SizeData',180,'MarkerEdgeColor','k','MarkerFaceColor','flat');
% カラー範囲
caxis([1 10]) colormap(jet); %カラーマップ変更 colorbar
1 comentario
Atsushi Ueno
el 9 de Jul. de 2021
Editada: Atsushi Ueno
el 9 de Jul. de 2021
CDataにカラーマップの値を設定すれば良いのですが、どうすれば良いのか分からないので調べます...
⇒原因がわかったのでコメントを削除しました
Respuesta aceptada
Más respuestas (1)
Hernia Baby
el 9 de Jul. de 2021
Editada: Hernia Baby
el 9 de Jul. de 2021
polarscatterの場合、それぞれに(R,G,B)の値を適用する必要があります。
clc,clear,close;
z1 = [1 2 3 4 5 6]; %カラーにしたい値を定義
theta = deg2rad(60); %ラジアンに変換、60度間隔にプロットする
theta_end = 2*pi-deg2rad(theta); %最後のプロット点を定義
T = 0:theta:theta_end; %0度からスタートして 等間隔に1周する
ここがミソです
NoCol = ceil(max(z1)); %色の数
CM = colormap(jet(NoCol)); %カラーマップの指定
プロットします。
mp = polarscatter(T,2,180,CM(fix(z1),:),'filled');%散布図 半径2で定義
% カラー範囲
caxis([min(z1) max(z1)])
color = colormap(jet);
%カラーマップ変更
colorbar
3 comentarios
Atsushi Ueno
el 9 de Jul. de 2021
これは、マーカーの色を「RGB 3 成分の 3 列行列」で与える方法で、カラーマップを変数に置いてインデックスで引いてRGB行列にしている訳ですね。
なるほど勉強になります。
Hernia Baby
el 9 de Jul. de 2021
Editada: Hernia Baby
el 9 de Jul. de 2021
自分は配列のサイズを一緒にすればいいということに気づきませんでした。
確かにプロットするときはそういう指定しますもんね。こちらの方がなめらかです。
clc,clear,close;
z1 = [1 2 3 4 5 6]; %カラーにしたい値を定義
theta = deg2rad(60); %ラジアンに変換、60度間隔にプロットする
theta_end = 2*pi-deg2rad(theta); %最後のプロット点を定義
T = 0:theta:theta_end; %0度からスタートして 等間隔に1周する
mp = polarscatter(T,ones(1,length(z1))*2,ones(1,length(z1))*180,z1,'filled');%散布図 半径2で定義
% カラー範囲
caxis([0 7])
color = colormap(jet);
%カラーマップ変更
colorbar
H.O
el 10 de Jul. de 2021
Categorías
Más información sobre Orange en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

