How can use a common colorbar (cbarrow) for multiple number of figures?

39 vues (au cours des 30 derniers jours)
ASHESH RUDRA PAUL
ASHESH RUDRA PAUL le 3 Mar 2023
Modifié(e) : KSSV le 15 Mar 2024
I have four different plot. Now I want to use a single/common colour bar instead of four different colorbar for this four figure with 'cbarrow' command. A example of my code are also attached with this file.
subplot(2,2,1);
imagesc(long,lati,max_tmax_k2_15'-max_tmax_k_15','alphadata',~isnan(max_tmax_k2_15'));
set(gca,'Ydir','normal');
xlabel('Longitude');
ylabel('Latitude');
%%TITLE({'2015-2040'})
xlim([85.5 98])
ylim([20.5 30])
caxis([-2 2])
grid on
colorbar
colormap(flipud(colormap))
hold on
plot(X,Y)
xlim([85.5 98])
ylim([20.5 30])
hold off
subplot(2,2,2);
imagesc(long,lati,max_tmax_k3_15'-max_tmax_k_15','alphadata',~isnan(max_tmax_k3_15'));
set(gca,'Ydir','normal');
xlabel('Longitude');
ylabel('Latitude');
%TITLE({'2041-2070'})
xlim([85.5 98])
ylim([20.5 30])
caxis([-2 2])
% % %%caxis([18 51])
grid on
colorbar
colormap(flipud(colormap))
hold on
plot(X,Y)
xlim([85.5 98])
ylim([20.5 30])
hold off
subplot(2,2,3)
imagesc(long,lati,max_tmax_k4_15'-max_tmax_k_15','alphadata',~isnan(max_tmax_k4_15'));
set(gca,'Ydir','normal');
xlabel('Longitude');
ylabel('Latitude');
%TITLE({'2071-2100'})
xlim([85.5 98])
ylim([20.5 30])
caxis([-2 2])
% % %%caxis([18 51])
grid on
colorbar
colormap(flipud(colormap))
hold on
plot(X,Y)
xlim([85.5 98])
ylim([20.5 30])
hold off
subplot(2,2,4)
imagesc(long,lati,max_tmax_k6_15'-max_tmax_k_15','alphadata',~isnan(max_tmax_k6_15'));
set(gca,'Ydir','normal');
xlabel('Longitude');
ylabel('Latitude');
%TITLE({'2015-2040'})
% colormap(parula)
xlim([85.5 98])
ylim([20.5 30])
caxis([-2 2])
grid on
colorbar
colormap(flipud(colormap))
hold on
plot(X,Y)
xlim([85.5 98])
ylim([20.5 30])
hold off
Ja = customcolormap_preset('pink-white-green');
colormap(custommap(12,Ja))
colormap(flipud(colormap))

Réponses (1)

Shubham
Shubham le 6 Mar 2023
Hi Ashesh,
To create a single colorbar for the four subplots, you can follow these steps:
  1. Create a new figure and axes for the colorbar.
  2. Plot a colorbar using the colorbar function with a suitable range of values.
  3. Set the CLim property of each subplot to the same range of values used in the colorbar.
  4. Adjust the position of the subplots and colorbar axes to make them fit nicely in the figure.
Here's an example code snippet that shows how to do this:
% Create a new figure for the colorbar
fig = figure;
cbax = axes('Position', [0.85 0.15 0.05 0.7]);
% Plot a colorbar with a suitable range of values
caxis([-2 2]);
colorbar(cbax, 'Location', 'westoutside', 'TickDirection', 'out');
% Set the CLim property of each subplot to the same range of values
for i = 1:4
subplot(2,2,i);
caxis([-2 2]);
end
% Adjust the position of the subplots and colorbar axes
set(gcf, 'Position', [100 100 800 600]);
set(gca, 'Position', [0.1 0.15 0.7 0.7]);
set(cbax, 'Position', [0.85 0.15 0.05 0.7]);
You can insert this code snippet after your existing code to create the colorbar for the four subplots. Note that you may need to adjust the position and size of the subplots and colorbar axes to make them fit nicely in your figure.

Community Treasure Hunt

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

Start Hunting!

Translated by