matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~
上图为使用matlab绘制的双y轴带置信区间的曲线。其中黑色的那条是根据左边y轴绘制的,灰色曲线是根据右边y轴绘制。matlab程序如下:
[AX,H1,H2] = plotyy(x,y2,x,z1,@(x,y2)errorbar(x,y2,l2,u2,'k-^','linewidth',2),@(x,z1)errorbar(x,z1,l3,u3,'color',[138 138 138]/255,'linestyle','-','marker','o','linewidth',2));
%plotyy是双y轴的函数,x为两条曲线的公共x轴坐标,y2为以左侧y轴的y轴坐标,z1以右侧y轴的坐标;
%errorbar为绘制置信区间的函数,内容包括x轴,y轴坐标,取值下限及上限,后面为设置线型及线宽,常用的线型很容易更改。若想修改线的颜色为其他类型,必须将这几种属性分开,例如颜色用‘color’,线型‘linestyle’。点的类型函数‘marker’。(一般网上介绍中都是用‘markerstyle’,但是这个属性在我的matlab版本中总是报错,找了半天才找到‘marker’);
set(get(AX(1),'Ylabel'),'string','B','fontweight','bold','FontSize',13);
%设置左侧y轴的字体大小,粗体类型;
set(get(AX(2),'Ylabel'),'string','C','fontweight','bold','FontSize',13);
%设置右侧y轴的字体大小,粗体类型;
set(AX(1),'YLim',[0,750],'fontweight','bold','FontSize',13);
%设置左侧y轴的取值范围,事实证明,即使后面设置了取值间隔及范围,设置YLim也不能省略;
set(AX(2),'YLim',[-20,80],'fontweight','bold','FontSize',13);
set(AX(1),'YTick',[0:150:750]);
%设置左侧y轴的取值间隔及范围;
set(AX(2),'YTick',[-20:20:80]);
set(AX(1),'Ycolor','k')
%设置左侧y轴的颜色;
set(AX(2),'Ycolor',[138 138 138]/255)
%设置右侧y轴的颜色——灰色;
%不知道上述几个属性的设置能否合成一个?
xlabel('A','fontweight','bold','FontSize',13)
legend([H1,H2],{'B','C'},'fontweight','bold','FontSize',13)
%设置双y轴的legend
希望能对想把几张简单的图形融合在一起的同道中人有些帮助~~