группы полос Matlab с центром в указанном месте на оси х - PullRequest
0 голосов
/ 20 декабря 2011

Предположим, что вы хотите построить 2 набора данных с неодинаковым количеством элементов

X=[1.1 1.4 1.2 1.1];
Y=[1.4 1.4 1.1]; 

Я могу использовать boxplot

boxplot([X Y],[1 1 1 1 2 2 2]) 

, но таких функций нетэто для бара.то есть я хотел бы построить столбцы для каждого значения X и каждого значения Y, но значения в X должны объединяться вместе и должны находиться вдали от столбцов в Y. В идеале, в дополнение к группе, также хотелось бы указатьТретий параметр, который будет указывать, где на оси х должны быть центрированы столбцы (скажем, в моем случае [2 11] - одно значение для каждой группы).

У кого-нибудь есть такая функция?Я проверил matlabcentral и не нашел то, что я ищу.спасибо L

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

Как то так?

X=[1.1 1.4 1.2 1.1];
Y=[1.4 1.4 1.1];
a = [2 11] - 1;

bar((1:numel(X))+a(1), X, 'b')
hold on
bar((1:numel(Y))+a(2), Y, 'r')
hold off
set(gca,'XTickMode','auto')
legend({'X','Y'})
1 голос
/ 20 декабря 2011

Это просто взлом, но может быть достаточно для начинающих:

X = [1.1 1.4 1.2 1.1]
Y = [1.4 1.4 1]
Y(end+1) = NaN
bar([X; Y])

Если вы хотите изменить интервал, вы можете поиграть с местоположениями NaN.

enter image description here

...