You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Octave中基于共同时间列绘制B与C的2D图(含两种需求)

绘图需求解决方案

数据集

Column A(时间)Column BColumn C
2020-10-26 00:07:200.680.0
2020-10-26 00:12:200.770.1
2020-10-26 00:37:201.11.2
2020-10-26 01:27:200.510.0
2020-10-26 03:42:210.9-0.3
2020-10-26 04:42:21-1.30.3

需求说明

已知已通过 plotyy(A,B,A,C) 生成双Y轴单X轴图表,现需实现以下两种绘图需求:

  • 绘制B与C的关系图,将Column A作为第二Y轴
  • 绘制随时间变化的B与C的关系图,且不显示第二Y轴

解决方案代码

需求1:B vs C 关系图(Column A为第二Y轴)

首先需将时间列转换为MATLAB可处理的数值格式(如datenum),再创建双Y轴关联图表:

% 导入数据
A = {'2020-10-26 00:07:20'; '2020-10-26 00:12:20'; '2020-10-26 00:37:20'; ...
     '2020-10-26 01:27:20'; '2020-10-26 03:42:21'; '2020-10-26 04:42:21'};
B = [0.68; 0.77; 1.1; 0.51; 0.9; -1.3];
C = [0.0; 0.1; 1.2; 0.0; -0.3; 0.3];

% 时间转数值格式
A_num = datenum(A);

% 创建双Y轴:X轴为C,左Y轴为B,右Y轴为时间
[ax, h1, h2] = plotyy(C, B, C, A_num);

% 配置轴标签与格式
ylabel(ax(1), 'Column B');
ylabel(ax(2), 'Column A(时间)');
datetick(ax(2), 'y', 'HH:mm:ss'); % 可按需调整时间显示格式
xlabel('Column C');

% 图例与标题
legend([h1, h2], {'Column B', 'Column A'}, 'Location', 'best');
title('B vs C 关系图(时间为第二Y轴)');

需求2:随时间变化的B与C关系图(无第二Y轴)

以时间为X轴,同时绘制B、C曲线,隐藏右侧Y轴即可:

% 沿用上述变量A_num、B、C

% 创建双Y轴基础图表
[ax, h1, h2] = plotyy(A_num, B, A_num, C);

% 隐藏第二Y轴
set(ax(2), 'Visible', 'off');

% 配置X轴时间格式与标签
datetick(ax(1), 'x', 'HH:mm:ss');
xlabel('时间(Column A)');
ylabel(ax(1), '数值');

% 区分两条曲线样式
set(h1, 'Color', 'r', 'LineStyle', '-');
set(h2, 'Color', 'b', 'LineStyle', '--');

% 图例与标题
legend([h1, h2], {'Column B', 'Column C'}, 'Location', 'best');
title('随时间变化的B与C关系图');

内容的提问来源于stack exchange,提问作者user1669504

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:35:44