Setting Zero to a specific color in 3D surface plot
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
kenneth
am 2 Aug. 2022
Kommentiert: kenneth
am 2 Aug. 2022
I am trying to set the color scale for my data, which blue for the positive, red for the negative, and setting zero as grey color.
I had been using the code now, which seperate the positive and negetive, but not the zero yet.
%data here means the data I imported from the excel sheet.
y = data(2:end,1) ;
x = data(1,2:end) ;
Z = data(2:end,2:end) ;
surf(x,y,Z)
colormap(hot(2))
shading interp
caxis([-15 15])
I tried to remove the zero by setting zero as NaN, but this affects the result as "interp" is used.
Is it posible to set the zero as as specifc color with this condition?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 2 Aug. 2022
y = data(2:end,1) ;
x = data(1,2:end) ;
Z = data(2:end,2:end) ;
C = sign(Z);
warp(x, y, Z, C)
caxis([-1 1])
colormap([1 0 0;0.2 0.2 0.2;0 0 1])
I did not use surf() because surf() extrapolates between vertices, so the color at each face would reflect the average of adjacent nodes, whereas with warp() it should be point by point
4 Kommentare
Walter Roberson
am 2 Aug. 2022
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/1085635/New%20Microsoft%20Excel%20Worksheet.xlsx';
data = readmatrix(filename);
y = data(2:end,1) ;
x = data(1,2:end) ;
Z = data(2:end,2:end) ;
C = sign(Z);
warp(x, y, Z, C)
caxis([-1 1])
colormap([1 0 0;0.4 0.4 0.4;0 0 1])
When I probe that with the data cursor, the gray part is all exactly 0.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Color and Styling 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!
