Разные правая и левая оси на графике MATLAB? - PullRequest
13 голосов
/ 20 апреля 2010

Я строю единственный след в MATLAB с plot(). Я хотел бы добавить правую ось Y с другим набором отметок (масштабируется линейно). Возможно ли это?

Ответы [ 6 ]

16 голосов
/ 20 апреля 2010

Есть несколько хороших предложений по этому тесно связанному вопросу , хотя они касаются более сложной ситуации, чем ваша. Если вам нужно супер-простое решение для DIY, вы можете попробовать это:

plot(rand(1, 10));       % Plot some random data
ylabel(gca, 'scale 1');  % Add a label to the left y axis
set(gca, 'Box', 'off');  % Turn off the box surrounding the whole axes
axesPosition = get(gca, 'Position');           % Get the current axes position
hNewAxes = axes('Position', axesPosition, ...  % Place a new axes on top...
                'Color', 'none', ...           %   ... with no background color
                'YLim', [0 10], ...            %   ... and a different scale
                'YAxisLocation', 'right', ...  %   ... located on the right
                'XTick', [], ...               %   ... with no x tick marks
                'Box', 'off');                 %   ... and no surrounding box
ylabel(hNewAxes, 'scale 2');  % Add a label to the right y axis

А вот что вы должны получить:

enter image description here

8 голосов
/ 20 апреля 2010

Вы можете попробовать эту отправку в MATLAB File Exchange - PLOT2AXES .

PLOT2AXES пример http://www.mathworks.com/matlabcentral/fx_files/7426/2/plot2axes.png

2 голосов
/ 16 июня 2012

Решение Jiro хорошо (функция обмена файлами), однако, оно не позволяет использовать встроенные в Matlab функции построения (bar, scatter и т. Д.), И вместо этого вам придется использовать plot2axes. Собственная помощь Matlab дает решение иметь две оси на графиках любого типа: ax2 = оси ('Position', get (ax1, 'Position'), ... 'XAxisLocation', 'сверху', ... 'YAxisLocation', 'право', ... 'Цвет', 'ни один', ... 'Xcolor', 'к', 'YColor', 'к');

Посмотрите на: http://www.mathworks.com/help/techdoc/creating_plots/f1-11215.html

1 голос
/ 13 февраля 2017

Начиная с matlab 2016 года и далее есть возможность определить, на какой оси строится график:

yyaxis left
plots...
yyaxis right
plots...

Источник: https://se.mathworks.com/help/matlab/ref/yyaxis.html

1 голос
/ 20 апреля 2010

Откройте MATLAB Help с F1 и посмотрите на функции ниже функции plot , о которой вы упомянули, там вы увидите plotyy . Это то, что вам, вероятно, нужно.

ОБНОВЛЕНИЕ: на самом деле plotyy НЕ является ответом на вопрос, указанный gnovice.

0 голосов
/ 21 ноября 2016

Я смог сделать это со следующим после построения графика левой оси:

yyaxis right
ylabel('Right axis label')
plot(x,y1) % plot your right axis graph

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...