Как получить значение строки по центру над столбцами в гистограмме - PullRequest
0 голосов
/ 12 декабря 2018

У меня проблемы с выравниванием текста над правильными столбцами на следующей гистограмме. Я не могу понять, где это происходит?

КОД:

bar(two_weeks,zAxis);
text(1:length(two_weeks),zAxis,num2str(zAxis),'vert','bottom','horiz','center');
box off
ylabel('Z Axis')

Гистограмма:

Стрелки были добавлены после производства и показывают, где они должны быть выровнены.Также обратите внимание, что мне было лень рисовать все стрелки.

This is what is happening


ДАННЫЕ:

two_weeks = 
 1×14 datetime array
 [ 21-Nov-2018, 22-Nov-2018, 23-Nov-2018, 24-Nov-2018, 25-Nov-2018, 26-Nov-2018, 27-Nov-2018, ...
   28-Nov-2018, 29-Nov-2018, 30-Nov-2018, 01-Dec-2018, 02-Dec-2018, 03-Dec-2018, 04-Dec-2018 ]

zAxis = 
 [ 5, 12, 1, 7, 13, 24, 2, 27, 62, 0, 3, 17, 74, 4 ].'

1 Ответ

0 голосов
/ 13 декабря 2018

Ваша ось x указана с использованием массива datetime.Затем вы используете догадки для выравнивания индексов (1:length(two_weeks)) для координат х ваших text элементов.

Вместо этого просто используйте тот же массив datetime для позиции text!

bar( two_weeks, zAxis );
text( two_weeks, zAxis, arrayfun(@num2str,zAxis,'uni',0) );

Как вы и сделали в этом вопросе, мы хотим установить 'VerticalAlignment' в 'bottom' и 'HorizontalAlignment' в 'center', чтобы убрать нюансы выше столбцов:

bar( two_weeks, zAxis );
text( two_weeks, zAxis, arrayfun(@num2str,zAxis,'uni',0), ...
      'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'center' );

Вывод:

bar plot

...