Filter löschen
Filter löschen

3次元stemプロッ​トをZ軸の値によって​カラーバー表示する方​法

5 Ansichten (letzte 30 Tage)
rika yamada
rika yamada am 2 Nov. 2020
Kommentiert: rika yamada am 6 Nov. 2020
maltab2018a(windows)を使っています。
stem3 を使って三次元プロットをしたのですが、これをZ軸の大きさに即して色を変える方法はあるでしょうか。(カラーバー表示をしたいです)
よろしくお願いします。
load('bool2.mat')
X=Book2_finesse.';
Y=Book2_power;
ZZ=Book2_snr(X-4,(110-Y)./10);
stem3(Y,X,ZZ,'b')
  2 Kommentare
Kiyoto Matsumoto
Kiyoto Matsumoto am 5 Nov. 2020
Bearbeitet: Kiyoto Matsumoto am 5 Nov. 2020
下記を参考にしました。拙い書き方は許してください。
階調を細かくする場合は、マップの生成時とインデックスの計算時に値をn倍すれば良いと思います。
縦棒の色が固定で良いなら、同URLのstem3にscatter3を重ねる方法が簡単そうです。
https://jp.mathworks.com/matlabcentral/answers/414559-3d-stem-plot-colored-by-z-value
load('bool2.mat')
X=Book2_finesse.';
Y=Book2_power;
ZZ=Book2_snr(X-4,(110-Y)./10);
figure
cm_max = ceil(max(max(ZZ)));%2018b以降ならceil(max(ZZ,[],'all'))
cm_min = floor(min(min(ZZ)));
cm = colormap(jet(cm_max - cm_min + 1));%1刻みの階調のマップを生成
hold all
%ZZの各要素について、NaNでないものを1つずづプロット
for i = 1:size(ZZ,1)
for j = 1:size(ZZ,2)
if ~isnan(ZZ(i,j))
sh(i,j) = stem3(Y(j), X(i), ZZ(i,j));
idx = round(ZZ(i,j) - cm_min + 1);%ZZの値を丸めてインデックスにする。cm_minがidx = 1になるようシフト。
set(sh(i,j), 'Color',cm(idx,:), 'MarkerFaceColor',cm(idx,:), 'MarkerEdgeColor',cm(idx,:))
end
end
end
hold off
colorbar
caxis([cm_min,cm_max])
grid on
view(-37.5, 30)
xlabel('Y')
ylabel('X')
zlabel('ZZ')
rika yamada
rika yamada am 6 Nov. 2020
ありがとうございます。
助かりました。

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!