Разная правая и левая оси на графике MATLAB?
Я рисую одну трассировку в MATLAB с plot()
. Я хотел бы добавить правую ось y с другим набором меток (масштабируется линейно). Возможно ли это?
Ответы
Ответ 1
Есть несколько хороших предложений по этому тесно связанному вопросу, хотя они имеют дело с более сложной ситуацией, чем ваша. Если вы хотите супер-простое решение для 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
И вот что вы должны получить:
![введите описание изображения здесь]()
Ответ 2
Вы можете попробовать эту отправку в MATLAB File Exchange - PLOT2AXES.
Пример PLOT2AXES http://www.mathworks.com/matlabcentral/fx_files/7426/2/plot2axes.png
Ответ 3
Решение Jiro является хорошим (функция обмена файлами), однако он не позволяет использовать встроенные функции построения Matlab (бар, разброс и т.д.), и вместо этого вы должны использовать plot2axes. Собственная помощь Matlab дает решение иметь две оси на любых типах графиков:
ax2 = оси ('Position', get (ax1, 'Position'),... 'XAxisLocation', 'сверху',... 'YAxisLocation', 'право',... 'Цвет', 'ни один',... 'Xcolor', 'к', 'YColor', 'к');
Посмотрите: http://www.mathworks.com/help/techdoc/creating_plots/f1-11215.html
Ответ 4
Откройте справку MATLAB с помощью F1 и посмотрите на функции ниже функции plot, о которой вы упомянули, там вы увидите plotyy. Это то, что вам, вероятно, нужно.
UPDATE: на самом деле plotyy НЕ является ответом на вопрос, как указано gnovice.
Ответ 5
В Matlab 2016 и далее есть возможность определить, на какой оси изображены одна диаграмма:
yyaxis left
plots...
yyaxis right
plots...
Источник:
https://se.mathworks.com/help/matlab/ref/yyaxis.html
Ответ 6
Я смог сделать это со следующим после построения графика левой оси:
yyaxis right
ylabel('Right axis label')
plot(x,y1) % plot your right axis graph
Надеюсь, что это поможет.