График бар Matlab сгруппирован, но в разных масштабах

96
6

У меня есть два набора данных, и я хочу построить график с помощью гистограммы. Но проблема в том, что эти два набора данных находятся в совсем другом масштабе. Если я просто использую bar(A), он будет выглядеть следующим образом: сгруппировано, но второй набор данных едва заметен, потому что масштаб.


enter image description here


Однако, если я использую plotyy(x,y1,x,y2), график будет таким: два набора данных имеют разный масштаб, но гистограммы не сгруппированы, а второй набор данных перекрывается с первым.


enter image description here


Итак, мне интересно, есть ли способ построить график, сгруппированный, как первая цифра, но два набора данных используют отдельные шкалы y? Или есть способ отрегулировать горизонтальное смещение гистограммы во втором графике, чтобы он выглядел как "сгруппированный".


Спасибо!

спросил(а) 2021-01-19T18:40:50+03:00 2 месяца, 3 недели назад
1
Решение
129

Здесь используется вариант plotyy(x1,y1,x2,y2,fun1,fun2) plotyy:


%// Set these three variables as desired
offset = (x(2)-x(1))/8;
width = (x(2)-x(1))/4;
colors = {'b','g'};

%// Do the plot
plotyy(x-offset,y1,x+offset,y2, @(x,y) bar(x,y,width,colors{1}), @(x,y) bar(x,y,width,colors{2}));


enter image description here

Если вы предпочитаете, чтобы x-ticks отображались только на используемых значениях x:


h = plotyy(x-offset,y1,x+offset,y2, @(x,y) bar(x,y,width,colors{1}), @(x,y) bar(x,y,width,colors{2}));
set(h,'xtick',x)

ответил(а) 2021-01-19T18:40:50+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема