2015-04-24 5 views
0

У меня есть 3 матрицы A, B и C, где каждый из них имеет размер 21x2. Я использую bar для каждого отдельного изображения. Мне интересно, как я могу построить три вместе, используя bar3?Используйте bar3 вместо bar для построения нескольких данных в Matlab

Таким образом, используя этот код:

A=rand(21,2); 
B=rand(21,2); 
C=rand(21,2); 
fig=figure();b1=bar(A); 
fig2=figure();b2=bar(B); 
fig3=figure();b3=bar(C); 

будет генерировать эти три цифры:

A:

enter image description here

B:

enter image description here

C:

enter image description here

И то, что я хочу делать то, что я хочу, чтобы они были все та же фигура, но построены друг за другом в направлении оси г, чтобы быть чем-то вроде this

+0

Что вы пробовали? Это выглядит так же просто, как 'bar3 (x, y)', поэтому я предполагаю, что у вас есть проблема где-то в другом месте. Может быть, значения данных? Покажите нам MCVE. –

+0

@AnderBiguri благодарит за ваш комментарий. Что такое 'x' и' y'? У меня просто есть 3 матрицы размера '21x2', которые я обычно планировал бы их отдельно, используя' bar'. Но теперь я не знаю, как их строить отдельно, но все же на одном графике, если вы понимаете, что я имею в виду. – Tak

+0

http://stackoverflow.com/help/mcve <- MCVE. Показывает нам пример! –

ответ

1

Идея состоит в том, чтобы создавать новые переменные, которые содержат все данные, которые вы хотите в каждой строке, интеркалированной с помощью NaN. Именно это изменение дает вам практически решение.

for ii=1:size(A,1) 
    A1((ii-1)*3+1)=A(ii,1); 
    A1((ii-1)*3+2)=A(ii,2); 
    A1((ii-1)*3+3)=NaN; 

    B1((ii-1)*3+1)=B(ii,1); 
    B1((ii-1)*3+2)=B(ii,2); 
    B1((ii-1)*3+3)=NaN; 

    C1((ii-1)*3+1)=C(ii,1); 
    C1((ii-1)*3+2)=C(ii,2); 
    C1((ii-1)*3+3)=NaN; 
end 

h=bar3(horzcat(A1',B1',C1')) 

Однако, я предполагаю, что вы также хотите изменить цвета. Чтобы сделать это, идея состоит в том, что вы можете получить данные о цвете для каждой строки строки, используя get(h(nrow),'Cdata').

с этим трюком и вашей собственной цветовой палитрой, вы должны иметь возможность цветные полосы независимо друг от друга. Это не просто, но где весело, если его легко!

+0

Спасибо за ваш ответ. Я обновил свой вопрос с примерами и скриншотами, чтобы показать, что я хочу сделать, поэтому, если бы вы могли посмотреть. – Tak

+0

@shepherd Итак, у вас есть 6 данных, разделенных на 3 маты? Это сбивает с толку! Во всяком случае, чтобы иметь возможность построить все из 6, тогда сделайте 'bar3 (horzcat (A, B, C))' –

+0

Но это не то, что я хочу. Смотрите на моих скриншотах, как каждый из A, B и C имеет 21x 2bars (склеивается)? Я хочу то же самое (не разделенное), а для трех из них. Вы понимаете, что я имею в виду? – Tak

Смежные вопросы