我知道plotyy
,但在我看来,它并不像输入subplot(2,3,1)
那样直观,而且从那时起,在那个特定的子情节环境中工作......
假设我有以下数据:
a=rand(20,1);
a_cumul=cumsum(a);
我想在主要(左手)y轴上执行plot
a_cumul
,在次要(右手)y轴上执行a
的条形图
我很清楚我能做到:
plotyy(1:length(a_cumul),a_cumul,1:length(a),a,'plot','bar')
但是这很麻烦,如果我想例如仅绘制到辅助y轴并且不绘制到主y轴怎么办?简而言之,我正在寻找这样的解决方案是否存在:
figure;
switchToPrimaryYAxis; % What to do here??
plot(a_cumul);
% Do some formatting here if needed...
switchToSecondaryYAxis; % What to do here??
bar(a);
非常感谢你的帮助!
答案 0 :(得分:1)
基本上plotyy
:
创建两个叠加的axes
绘制指定为第一轴上前两个参数的数据
绘制指定为第二轴上最后两个参数的数据
将第二个第二轴颜色设置为none
,使其变为“#34;透明"所以允许在第一轴上看到图形
将yaxislocation
从标准位置(左)移至右侧
您可以创建一个figure
,然后两个axes
在两个plot
上制作任意axes
,然后选择axes(h)
h
}是轴的处理程序。
然后你可以编写一个自己的功能来执行轴调整。
创建figure
,axes
并调用函数调整轴的脚本
% Generate example data
t1=0:.1:2*pi;
t2=0:.1:4*pi;
y1=sin(t1);
y2=cos(t2);
% Create a "figure"
figure
% Create two axes
a1=axes
a2=axes
% Set the first axes as current axes
axes(a1)
% Plot something
plot(t1,y1,'k','linewidth',2)
% Set the second axes as current axes
axes(a2)
% Plot something
plot(t2,y2,'b','linewidth',2)
grid
% Adjust the axes:
my_plotyy(a1,a2)
调整轴的功能 - 模拟情节行为
该功能需要两个轴的手柄作为输入
function my_plotyy(a1,a2)
set(a1,'ycolor',[0 0 0])
set(a1,'box','on')
% Adjust the second axes:
% change x and y axis color
% move x and y axis location
% set axes color to none (this make it transparend allowing seeing the
% graph on the first axes
set(a2,'ycolor','b')
set(a2,'xcolor','b')
set(a2,'YAxisLocation','right')
set(a2,'XAxisLocation','top')
set(a2,'color','none')
set(a2,'box','off')
希望这有帮助。