我在MATLAB中使用plot()
绘制单个迹线。我想添加一个右y轴和一组不同的刻度线(线性缩放)。这可能吗?
答案 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
这就是你应该得到的:
答案 1 :(得分:8)
您可以尝试此提交到MATLAB文件交换 - PLOT2AXES。
PLOT2AXES example http://www.mathworks.com/matlabcentral/fx_files/7426/2/plot2axes.png
答案 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)
答案 4 :(得分:1)
从matlab 2016开始,可以选择定义一个绘图轴:
yyaxis left
plots...
yyaxis right
plots...
答案 5 :(得分:-1)
在绘制左轴图之后,我能够用以下内容完成:
yyaxis right
ylabel('Right axis label')
plot(x,y1) % plot your right axis graph
希望它有所帮助。