三次元座標の点の色分けをする方法について
8 views (last 30 days)
Show older comments
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軸のラベル名
0 Comments
Accepted Answer
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で色分けを制御しています.以下が色分けのイメージです.
More Answers (0)
See Also
Categories
Find more on ビッグ データの処理 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!