Setting color to certain data in 3d plot, keeping rest of data following colormap

4 次查看(过去 30 天)
I am plotting data in a 3d heatmap using the bar3 command. I'd like to set some of the data to a certain color that is not included in the colorscheme of the legend bar, while keeping the rest of the data following the color map. The code I'm currently using is:
b=bar3(error);
set(gca,'XTickLabel',[2.5 5 7.5 10])
set(gca,'YTickLabel',[0 50 100 150 200 250])
ylim([0 20.5]);
colorbar
colormap turbo;
caxis([0 100]);
for k = 1:length(b)
zdata = b(k).ZData;
b(k).CData = zdata;
b(k).FaceColor = 'interp';
end

回答(1 个)

Jaswanth
Jaswanth 2024-4-29
Hi Heather,
To achieve the effect of changing the color of some data in a 3D bar plot (bar3) in MATLAB, while keeping the default colormap for the rest of the bars, you can manipulate the properties of the individual bars using FaceColor property. You can set FaceColor to a specific color (using an RGB triplet) to bypass the colormap for that bar.
Kindly go through the following example that changes the color of the first bar to red, while the remaining bars use the default colormap (turbo in this case).
% Generate example data
error = rand(10, 10) * 100;
% Create a 3D bar plot
b = bar3(error);
colorbar
colormap turbo; % Set the default colormap for the plot
% Customize the appearance
for k = 1:length(b)
zdata = b(k).ZData;
b(k).CData = zdata; % Assign ZData to CData for color mapping
b(k).FaceColor = 'interp'; % Use interpolated coloring
if k == 1 % Identify the first bar to change its color
% Use a specific color for the first bar (e.g., red)
b(k).FaceColor = [1, 0, 0]; % Directly set the FaceColor to red
end
end
I hope that the information provided above is helpful in accomplishing your task.

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

标签

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by