Неправильные легенды при построении гистограммы с «держись» - PullRequest
1 голос
/ 09 февраля 2012

Я строю гистограммы на участке, где каждый график имеет две гистограммы, как показано в одной части нижеприведенного участка:

enter image description here

Вопрос: Я хотел бы, чтобы у истории с переменной с именем result_uT_per_window была красная легенда, а у истории с переменной с именем uT_top_of_global_window синяя легенда.Я думал, что то, что у меня есть в коде, должно делать это, но это не так.Это код:

    hold on
    hist(nonzeros(result_uT_per_window(:,window_no)))
    hist(uT_top_of_global_window)
    h = findobj(gca, 'Type','patch');
    set(h(1), 'FaceColor','r', 'EdgeColor','w')
    set(h(2), 'FaceColor','b', 'EdgeColor','w')
    xlabel('Total Velocity (in m/s)')
    ylabel('Frequency')
    legend('From moving window','From global window')

Можете ли вы заметить, где я иду не так?Спасибо.

1 Ответ

2 голосов
/ 10 февраля 2012

Вы ошибаетесь, предполагая, что h(1) - это то, что было создано вашей первой hist командой:

data1=normrnd(10,1,10000,1);
data2=normrnd(20,1,10000,1);
figure;
hold on;
hist(data1);
hist(data2);
h = findobj(gca, 'Type','patch');
set(h(1), 'FaceColor','r', 'EdgeColor','w') % color h1 plot red
set(h(2), 'FaceColor','b', 'EdgeColor','w') % color h2 plot blue

производит

enter image description here

, показывающеечто данные1 (со средним значением 10) изображены синим цветом, доказывая, что их дескриптор равен h (2), даже если он был нанесен первым.

Следовательно, для решения вашей проблемы вы можете написать

h = flipud(findobj(gca, 'Type','patch'));

чтобы привести ручки в h в том порядке, в котором вы ожидаете.

...