Моей матрица содержит дискретные значения 1
, 2
и 3
, который (в данном случае) являются кодами для red
, green
и blue
. Цветная панель показывает эти метки в позициях, где я изначально не ожидал, что они будут. Я предполагаю, что это связано с тем, что присвоены цвета (например, 2.4
не green
, а blue
), который не принимает дискретных значений.MATLAB/октав: Регулировка положения тика/выравнивания по оси
Я надеялся на настройку типа «TickLabelAlignment
» или что-то в этом роде, но ничего не смог найти. Поэтому мне пришлось «вручную» отрегулировать позиции, которые были успешными. Тем не менее, существует ли более универсальный способ сделать это? Я чувствую, что использую обходной путь.
Пример:
% set gnuplot as graphics toolkit, set custum colormap and create exemplary matrix
graphics_toolkit('gnuplot');
colormap([1 0 0; 0 1 0; 0 0 1]);
A = randi([1 3], 5, 5);
% plot with standard settings
subplot (2, 1, 1);
imagesc(A);
caxis([1 3]);
mycb = colorbar();
set(mycb, 'YTick', [1 2 3], 'YTickLabel', {'red', 'green', 'blue'});
% plot with adjusted tick positions (the way I want the colorbar to look like)
subplot (2, 1, 2);
imagesc(A);
caxis([1 3]);
mycb = colorbar();
set(mycb, 'YTick', [4/3 2 8/3], 'YTickLabel', {'red', 'green', 'blue'});