MATLAB图中不同的左右轴?

时间:2010-04-20 14:39:42

标签: matlab plot

我在MATLAB中使用plot()绘制单个迹线。我想添加一个右y轴和一组不同的刻度线(线性缩放)。这可能吗?

6 个答案:

答案 0 :(得分:16)

this closely related question有很多好的建议,虽然它们处理的情况比你的情况更复杂。如果你想要一个超简单的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

答案 1 :(得分:8)

答案 2 :(得分:2)

Jiro的解决方案很好(文件交换功能),但是,它不允许使用Matlab的内置绘图功能(条形图,散点图等),而你必须使用plot2axes。 Matlab自己的帮助提供了在任何类型的图上都有两个轴的解决方案: ax2 = axes('Position',get(ax1,'Position'),...            'XAxisLocation', '顶',...            'YAxisLocation', '右',...            '颜色', '无',...            'XColor', 'K', 'YColor', 'K');

请注意:http://www.mathworks.com/help/techdoc/creating_plots/f1-11215.html

答案 3 :(得分:1)

使用F1打开MATLAB帮助并查看您提到的函数plot下面的函数,您将看到plotyy。这是你可能需要的。

更新:实际上plotyy不是gnovice指出的问题的答案。

答案 4 :(得分:1)

从matlab 2016开始,可以选择定义一个绘图轴:

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

源: https://se.mathworks.com/help/matlab/ref/yyaxis.html

答案 5 :(得分:-1)

在绘制左轴图之后,我能够用以下内容完成:

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

希望它有所帮助。