目录
一、多个子图排列
1. 效果图
2. 实现代码
多子图:subplot(m,n,k)将一个窗口划分成m×n个小块,每个小块存放一个子图,k是子图的编号。 编号规则是: 从左到右边,从上到下依次编号。
%% 定义函数
t = (0 : pi/50 : 2*pi)'; % 列向量 101*1
k = (0.4 : 0.1 : 1); % 行向量 1*7
y = cos(t)*k ; % 矩阵101*7
%% 画第一幅子图
subplot(2,2,1); % 操作两幅子图中的第一幅
plot(t, y, 'r', 'LineWidth', 1.5); % 画图,t是横坐标,y是纵坐标,属性 lineWidth的值是1.5(即线宽度为1.5), 颜色为红色(手动指定)
title('y随t的变化图'); % 图名
xlabel('t'); % 横坐标轴名
ylabel('y=cos(t)*k'); % 纵坐标轴名
%% 画第二幅子图
subplot(2,2,2); % 操作两幅子图中的第二幅
plot(k, y, 'LineStyle', ':'); % 线的形状是虚点线,色彩是彩色的,当有多条线,且不指定时,按照默认的色彩次序用细实线绘制多条曲线
title('y随k的变化图'); % 图名
xlabel('k'); % 横坐标轴名
ylabel('y=cos(t)*k'); % 纵坐标轴名
%% 画第三幅子图
subplot(2,2,3); % 操作两幅子图中的第三幅
plot(t, y, k, y, 'Marker', '*', 'MarkerSize', 7.0); % 一幅图上有两个数据集,设置数据点形为*,大小是7.0
title('y随两种参数的两种变化图'); % 图名
xlabel('k'); % 横坐标轴名
ylabel('y=cos(t)*k'); % 纵坐标轴名
二、图像中多条曲线
1. 效果图
2. 实现代码
%% 定义函数
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = cos(x);
%% 画图/多次叠绘
F1 = plot(x, y2); % 设置图像的句柄为F1
set(F1, 'LineStyle', '-.', 'color', 'b'); % 对F1的图像进行设置
hold on; % 在y1图像的基础上,再绘制y2图像
F2 = plot(x, y1, 'r'); % 设置图像的句柄为F2
set(F2, 'color', 'r'); % 对F2的图像进行设置
%% 加注释(完全可以用图形化界面工具来做)
text(3, 0.1, '{\fontsize{15}\leftarrow这个地方好陡峭}');
%% 加网格
grid on; % 应用分格线(网格)
set(gca, 'xtick', [0: 0.5: 7]) ; % 修改网格间隔,获得gca句柄(坐标轴的句柄),设置xtick(x轴网格)从0~7,间隔是0.5
set(gca, 'ytick', [-1; -0.6; 0; 0.6; 1]); % 固定网格线
%% 加图例(完全可以用图形化界面工具来做)
h = legend([F2, F1], 'sin(x)', 'cos(x)'); % 加一个图例,句柄为h,指明F2是sin(x),F1是cos(x)
set(h, 'fontsize', 16, 'color', 'k', 'edgecolor', 'r', 'textcolor', 'w'); % 对图例h进行精细设置
%% 坐标轴控制
axis([0, 2*pi-0.4, -0.8, 1]); % 将横坐标范围设定到0~2*pi-0.4,纵坐标范围设定到-0.8~1
%% 横纵坐标的名称
title('{\fontsize{14}\bfsin(x)和cos(x)的曲线}');
xlabel('{\fontsize{14}\bft\rightarrow}');
ylabel('{\fontsize{14}\bfy}');
%% 拆分图例,能够让图例中的F1和F2分离开,各自都能相互移动
ax1 = axes('position', get(gca, 'position'), 'visible', 'off');
legend(ax1, F1, 'sin(x)', 'location', 'northwest');
ax2 = axes('position', get(gca, 'position'), 'visible', 'off');
legend(ax2, F2, 'cos(x)', 'location', 'northeast');
三、一图有两个纵坐标
1. 效果图
2. 实现代码
%% 定义函数
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
%% 画图
figure; % 新建一个图像
% 两个轴的句柄AX,两个图形对象的句柄H1和H2
% AX(1)是左轴,AX(2)是右轴。
[AX, H1, H2] = plotyy(x, y1, x, y2);
%% 设置两个纵坐标的名称
set(get(AX(1), 'ylabel'), 'String', 'Slow Decay'); % 第一个纵坐标的名称
set(get(AX(2), 'ylabel'), 'String', 'Fast Decay'); % 第二个纵坐标的名称
% 上面两行等价于下面两行
%%% ylabel(AX(1), 'Slow Decay'); % 第一个纵坐标的名称
%%% ylabel(AX(2), 'Fast Decay'); % 第二个纵坐标的名称
%% 设置两个纵坐标的样式
set(H1, 'LineStyle', '--'); % 设置为虚线
set(H2, 'LineStyle', ':'); % 设置为点线
%% 设置标题和横坐标
xlabel('Time (\musec)'); % 横坐标的名称
title('Multiple Decay Rates'); % 标题