三次元座標の点の色分けをする方法について

8 views (last 30 days)
AIDA
AIDA on 2 Aug 2024
Commented: AIDA on 6 Aug 2024
csvファイルでn行4列のデータがあります。1列目からX座標、Y座標、Z座標、体積(µm^3)です。
swarmchart3を用いて三次元粒子群散布図を作成したのですが、体積の値ごとに色分けをしたいです。具体的には0µm^3以上1000µm^3以下、1000µm^3以上2000µm^3以下、2000µm^3以上3000µm^3以下・・・のように9000µm^3以上10000µm^3以下あたりまで色分け、カラーバーを追加したいです。
matlabを始めたばかりで初歩的な質問で申し訳ないですが、どなたかお知恵を拝借したく存じます。よろしくお願いいたします。
M = readmatrix("centroidXYZ_volume_sample.csv");
figure;
x = [M(:,1)]; %1列目を代入
y = [M(:,2)]; %2列目を代入
z = [M(:,3)]; %3列目を代入
swarmchart3(x,y,z,1, "."); %3次元粒子群散布図、サイズ1で点表記
xlim([0,30000]); %x軸の表示範囲
ylim([0,30000]); %y軸の表示範囲
zlim([0,100]); %z軸の表示範囲
%x軸の表示方法
xticks(0:5000:30000);
xticklabels({'0','5000','10000','15000','20000','25000','30000'});
%y軸の表示方法
yticks(0:5000:30000);
yticklabels({'0','5000','10000','15000','20000','25000','30000'});
%z軸の表示方法
%zticks(0:100:1000);
xlabel('centroid X [voxel]'); %x軸のラベル名
ylabel('centroid Y [voxel]'); %y軸のラベル名
zlabel('centroid Z [voxel]'); %z軸のラベル名

Accepted Answer

Tomoaki Takagi
Tomoaki Takagi on 3 Aug 2024
Edited: Tomoaki Takagi on 3 Aug 2024
以下はいかがでしょうか
M = readmatrix("centroidXYZ_volume_sample.csv");
figure;
x = [M(:,1)]; %1列目を代入
y = [M(:,2)]; %2列目を代入
z = [M(:,3)]; %3列目を代入
c = [M(:,4)]; %4列目を代入
swarmchart3(x,y,z,1,c, "."); %3次元粒子群散布図、サイズ1で点表記
mymap = [
0 0 0 % 黒
1 0 0 % 赤
0 1 0 % 緑
0 0 1 % 青
1 1 0
1 0 1
0 1 1
.5 .5 0
.5 0 .5
0 .5 .5
];
colormap(mymap);
colorbar;
clim([0 10000]);
xlim([0,30000]); %x軸の表示範囲
%以下略
mymapで色分けを制御しています.以下が色分けのイメージです.
  1 Comment
AIDA
AIDA on 6 Aug 2024
ご回答ありがとうございます。自分の求めていた図を描くことができました。
ありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Find more on ビッグ データの処理 in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!