How to plot just a colorbar without plot?

I would like to plot just a colorbar on a subplot without real figure. I can do this, but I want to shrink the figure area. How to make zero figure width and wide colorbar?

4 Comments

jonas
jonas on 23 Jul 2018
Edited: jonas on 23 Jul 2018
It is unclear what you mean. You want the axes area to match the area of the colorbar? Something like the attached image?
Also please make sure of your terminology. The figure is the containing UI for all the elements in it. Is this what you mean or do you mean the axes when you say 'figure area'? Because a zero figure width doesn't make any sense if you really mean 'figure'
I want a colorbar without graph/plot, and not on the side.
Can you draw an image in MSpaint of what you want?

Sign in to comment.

Answers (1)

A colorbar must be attached to an axes, so you have (at least) two options:
  1. Create an axes, attach a colorbar, then make the axes invisible.
  2. Create an axes, attach a colorbar, then move the axes and colorbar separately.
For example:
ax = axes;
c = colorbar(ax);
ax.Visible = 'off';

3 Comments

This did not work for me on R2018a. In spite of setting the Visible property to 'off', the axes remain visible.
The Visible property on axes controls the visibility of the axes (the backdrop, the rulers, the ticks, etc.) but does not control the visibility of the plots within the axes (lines, bar graphics, etc.). Is this the issue you are seeing? If not, please post some example code along with a screenshot of what you are seeing, and someone should be able to help you.
One can also center the colorbar in the figure as follows:
hf = figure('Units','normalized');
colormap turbo
hCB = colorbar('north');
set(gca,'Visible',false)
hCB.Position = [0.15 0.3 0.74 0.4];
hf.Position(4) = 0.1000;

Sign in to comment.

Asked:

on 23 Jul 2018

Commented:

on 4 Jan 2022

Community Treasure Hunt

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

Start Hunting!