質問: 極座標3次元プロットでのカラーマップ指定方法 極座標の散布図を作成し、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
回答: @h.oさんの意図した通りに動作しない原因が判りました 極座標の散布図 - matlab polarscatter - mathworks 日本 polarscatter(th,r,sz) はマーカーのサイズを設定します。 polarscatter(th,r,sz,c) はマーカーの色を設定します。 色を指定する為には4つのパラメータが必要ですが、色を指定するのにパラメータを3つしか入力していないのが原因です。3つしか入力しない引数のパターンも認識するので「マーカの色」のつもりで入力したパラメータが「マーカーのサイズ」と認識されてしまいエラーにはなりません。分かり易いようにマーカーの数を増やしました。 r = ones(1,12).*2; %rho値を定義 s = ones(1,12).*200; %マーカのサイズを定義 z1 = 1:12; %カラーにしたい値を定義 theta = deg2rad(30); %ラジアンに変換、60度間隔にプロットする theta_end = 2*pi-deg2rad(theta); %最後のプロット点を定義 t = 0:theta:theta_end; %0度からスタートして 等間隔に1周する % polarscatter(t,2 ,z1,'filled','sizedata',180,'markeredgecolor','k','markerfacecolor','flat'); mp = polarscatter(t,r,s,z1,'filled','sizedata',180,'markeredgecolor','k','markerfacecolor','flat');%散布図 半径2で定義 caxis([1 10]); colormap(jet); %カラーマップ変更 colorbar;