Plotyy: 多曲线图绘制利器
在数据可视化领域,MATLAB 提供了丰富的绘图工具,其中 plotyy 函数为我们绘制多曲线图提供了强大的支持。它允许我们在同一个图形窗口中绘制两组数据,并使用左右两侧的 Y 轴分别显示。本文将从几个方面详细介绍 plotyy 函数的使用方法和技巧。
1. 如何使用 plotyy 绘制两组数据?
plotyy 函数的基本语法如下:
matlab
[AX,H1,H2] = plotyy(X1,Y1,X2,Y2,'function1','function2')
其中,X1 和 Y1 表示第一组数据的 X 轴和 Y 轴坐标,X2 和 Y2 表示第二组数据的 X 轴和 Y 轴坐标。function1 和 function2 分别指定用于绘制两组数据的绘图函数,例如 plot、semilogy、loglog 等。
返回值 AX 是一个包含两个句柄的向量,分别对应左、右 Y 轴的句柄。H1 和 H2 分别是绘制的两条曲线的句柄。
示例:
假设我们有两组数据,分别表示时间和温度、时间和湿度。我们可以使用 plotyy 函数将这两组数据绘制在一个图形窗口中,并使用左侧 Y 轴显示温度,右侧 Y 轴显示湿度。
matlab
time = 1:10;
temperature = [15 17 19 21 23 25 27 29 31 33];
humidity = [60 65 70 75 80 85 90 95 100 105];
[AX,H1,H2] = plotyy(time,temperature,time,humidity,'plot','plot');
% 设置 Y 轴标签
ylabel(AX(1),'温度 (°C)');
ylabel(AX(2),'湿度 (%)');
% 设置 X 轴标签
xlabel('时间');
% 设置标题
title('温度和湿度变化');
2. 如何自定义两组数据的绘图函数?
plotyy 函数允许我们使用不同的绘图函数来绘制两组数据。例如,我们可以使用 plot 函数绘制第一组数据,使用 semilogy 函数绘制第二组数据,以显示不同的数据趋势。
示例:
matlab
time = 1:10;
temperature = [15 17 19 21 23 25 27 29 31 33];
humidity = [60 65 70 75 80 85 90 95 100 105];
[AX,H1,H2] = plotyy(time,temperature,time,humidity,'plot','semilogy');
% 设置 Y 轴标签
ylabel(AX(1),'温度 (°C)');
ylabel(AX(2),'湿度 (%)');
% 设置 X 轴标签
xlabel('时间');
% 设置标题
title('温度和湿度变化');
3. 如何设置两组数据的颜色和线型?
plotyy 函数本身不支持直接设置颜色和线型,但我们可以使用 set 函数来修改曲线属性。
示例:
matlab
time = 1:10;
temperature = [15 17 19 21 23 25 27 29 31 33];
humidity = [60 65 70 75 80 85 90 95 100 105];
[AX,H1,H2] = plotyy(time,temperature,time,humidity,'plot','plot');
% 设置第一组数据的颜色和线型
set(H1,'Color','r','LineStyle','-');
% 设置第二组数据的颜色和线型
set(H2,'Color','b','LineStyle','--');
% 设置 Y 轴标签
ylabel(AX(1),'温度 (°C)');
ylabel(AX(2),'湿度 (%)');
% 设置 X 轴标签
xlabel('时间');
% 设置标题
title('温度和湿度变化');
4. 如何调整两侧 Y 轴的刻度和标签?
plotyy 函数会自动调整两侧 Y 轴的刻度,以最佳地显示两组数据。但有时我们需要手动调整刻度和标签,以更好地展现数据特征。
示例:
matlab
time = 1:10;
temperature = [15 17 19 21 23 25 27 29 31 33];
humidity = [60 65 70 75 80 85 90 95 100 105];
[AX,H1,H2] = plotyy(time,temperature,time,humidity,'plot','plot');
% 设置左侧 Y 轴的刻度范围
set(AX(1),'YLim',[10 35]);
% 设置右侧 Y 轴的刻度间隔
set(AX(2),'YTick',[60 70 80 90 100 110]);
% 设置 Y 轴标签
ylabel(AX(1),'温度 (°C)');
ylabel(AX(2),'湿度 (%)');
% 设置 X 轴标签
xlabel('时间');
% 设置标题
title('温度和湿度变化');
5. 如何在 plotyy 图形中添加图例?
plotyy 函数本身不支持直接添加图例,但我们可以使用 legend 函数来实现。
示例:
matlab
time = 1:10;
temperature = [15 17 19 21 23 25 27 29 31 33];
humidity = [60 65 70 75 80 85 90 95 100 105];
[AX,H1,H2] = plotyy(time,temperature,time,humidity,'plot','plot');
% 设置第一组数据的颜色和线型
set(H1,'Color','r','LineStyle','-');
% 设置第二组数据的颜色和线型
set(H2,'Color','b','LineStyle','--');
% 添加图例
legend([H1 H2],{'温度','湿度'});
% 设置 Y 轴标签
ylabel(AX(1),'温度 (°C)');
ylabel(AX(2),'湿度 (%)');
% 设置 X 轴标签
xlabel('时间');
% 设置标题
title('温度和湿度变化');
总结
plotyy 函数是 MATLAB 提供的强大工具,可以帮助我们轻松绘制多曲线图,并自定义图表样式。通过合理地使用 plotyy 函数,我们可以清晰地展现多组数据之间的关系,并更好地进行数据分析和解读。
除了本文所述内容外,plotyy 函数还支持更多功能和特性,例如添加网格线、设置坐标轴范围、添加文本标注等。您可以参考 MATLAB 文档进一步学习 plotyy 函数的用法。
希望本文对您有所帮助!您是否在使用 plotyy 函数时遇到过其他或者您想分享一些您在绘制多曲线图方面的经验?欢迎在下方留言与我交流。