Unable to set the scatter3 marker color using clim
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Milos
am 22 Jan. 2023
Kommentiert: Star Strider
am 23 Jan. 2023
I'm trying to set the scatter3 plot markers' colors based on the maximum range of z variables, using clim. No matter what I do, all markers always plot in the default color.
Tz = readtable("data.xlsx","Sheet","z");
[m,n] = size(Tz);
[Tzmin, Tzminidx] = min(Tz{:,2:n}); % the first column needs to be discarded for some reason
[Tzmax, Tzmaxidx] = max(Tz{:,2:n});
r = 75; % this will later change in a loop, thus I want the color range to be fixed
x = readtable("data.xlsx","Sheet","x");
x = table2array(x(r,2:n));
y = readtable("data.xlsx","Sheet","y");
y = table2array(y(r,2:n));
z = readtable("data.xlsx","Sheet","z");
z = table2array(z(r,2:n));
% all three sheets are of the same size m x n
scatter3(x, y, z, 'filled', 'MarkerEdgeColor', 'none');
set(gca,'clim',[Tzmin(1) Tzmax(n-1)]); % I want to fix this range based on the min and max values of z
view(-45,45);
colorbar();
The result is always:
Note, I'm always getting the default coloring, even without using clim. That is, even if I specify any colorbar, etc. I always get the default marker color.
What am I doing wrong? Thanks.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 22 Jan. 2023
Bearbeitet: Star Strider
am 22 Jan. 2023
Perhaps something like this —
scatter3(x, y, z, 50, z, 'filled', 'MarkerEdgeColor', 'none');
The fourth argument to scatter3 is the marker size, and the fifth is the marker colour variable.
x = randn(1,150);
y = randn(1,150);
z = randn(1,150);
figure
scatter3(x, y, z, 50, z, 'filled', 'MarkerEdgeColor', 'none')
colormap(turbo)
colorbar
EDIT — Forgot colorbar. Fixed now.
.
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!