matlab2016a后版本不推荐使用plotyy函数
推荐使用以下函数画图
yyaxis left
yyaxis right
使用
colororder(colorset);%colorset为待使用的颜色的数组,顺序分别为left right
函数定义两轴的颜色
clear
close all
data0=readmatrix('1.txt');
L1=transpose(data0(:,1));
ycomplex=(data0(:,2:end));
yre=real(ycomplex);
yim=imag(ycomplex);
[sizex1, sizey1]=size(ycomplex);
%% parameter setting
fontSize=28;%字体大小
lineWidthBox=2;
markerSize=7;
pictureResolution='-r800';%修改图片质量
figure(1)%时域out
hold on
box on
set(gca,'LineWidth',lineWidthBox)%设置边的线宽
newcolors = [1 0 0; 0 0 1];
colororder(newcolors);
yyaxis left
reline=plot(L1,yre,'LineWidth',4,'color', newcolors(1,:));
s1=scatter(L1,yre,'LineWidth',2,'MarkerEdgeColor', newcolors(1,:));%,'MarkerEdgeColor',colorsetdot
s1.SizeData=50;
yticks(-10:0.5:20);
ylim([0 2.5]);
ylabel('left','FontName','Arial','FontSize',fontSize);
yyaxis right
imline=plot(L1,yim,'LineWidth',4,'LineStyle','-','color', newcolors(2,:));%,'color',colorset1(1,:)
s2=scatter(L1,yim,'LineWidth',2,'MarkerEdgeColor', newcolors(2,:));%,'MarkerEdgeColor',colorsetdot
s2.SizeData=50;
yticks(0:0.1:20);
ylim([0 0.601]);
ylabel('right','FontName','Arial','FontSize',fontSize);
xlim([14 32]);%x,y范围
xticks(0:3:50);
set(gca,'FontName','Arial','FontSize',fontSize);%设置字体
set (gca,'FontWeight','bold');%加粗
print('-djpeg','1.tif',pictureResolution);
print('-f1','MySavedPlottime21','-dpng');
%-f1表示输出图1,第二项为名称 第三项为格式输出图片质量一般,尺寸太小暂存作为示意
通过YAxis()可以单独设置左右刻度。
ax = gca;
ax.YAxis(1).Direction = 'reverse';
ax.YAxis(2).Direction = 'reverse';