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

MATLAB中基于结构体数组绘制时间序列图的技术实现

标普500成分股股价走势可视化实现方案

你已经完成了标普500成分股调整后收盘价的数据预处理,把数据存储在了stocks_adj_close结构体数组中,接下来咱们就来实现五只股票走势在同一图表的可视化分析,具体步骤和代码如下:

先回顾你的预处理代码

load('SP500stocks.mat'); % 从保存的工作区加载数据
fields ={'Open', 'High', 'Low', 'Close', 'Volume'}; % 定义要移除的字段
stocks_adj_close = rmfield(stocks, fields); % 移除不需要的字段,只保留调整后收盘价相关数据
struct2csv(stocks_adj_close, 'SP500 Adjusted Stocks Prices (2000-20019).csv'); % 将数据导出为CSV

多股票走势可视化实现步骤

1. 选择目标股票

首先咱们从stocks_adj_close里挑选五只你关注的股票,比如选一组科技巨头组合:

target_stocks = {'AAPL', 'MSFT', 'AMZN', 'GOOG', 'META'};

2. 提取日期与股价数据

需要从结构体中提取每只股票的日期序列和对应的调整后收盘价,同时确保所有股票的日期范围一致(这里假设所有股票的日期索引是相同的):

% 先获取日期序列(以第一只股票的日期为准,保证统一)
dates = stocks_adj_close.(target_stocks{1}).Dates;

% 初始化存储收盘价的矩阵
prices = zeros(length(dates), length(target_stocks));

% 遍历提取每只股票的收盘价
for i = 1:length(target_stocks)
    prices(:, i) = stocks_adj_close.(target_stocks{i}).AdjClose;
end

3. 绘制对比走势图

使用Matlab的plot函数绘制多曲线图表,添加图例、标题和坐标轴标签,让图表更清晰直观:

figure('Position', [100, 100, 1000, 600]); % 设置图表窗口大小
plot(dates, prices, 'LineWidth', 1.5); % 绘制五条走势线

% 添加图表辅助元素
title('五只标普500成分股近5年股价走势对比', 'FontSize', 14);
xlabel('日期', 'FontSize', 12);
ylabel('调整后收盘价(美元)', 'FontSize', 12);
legend(target_stocks, 'Location', 'best'); % 添加图例,自动选择最佳显示位置
grid on; % 显示网格线方便读数
datetick('x', 'yyyy-mm', 'keepticks'); % 设置X轴日期格式,保留原有刻度

额外优化小建议

  • 如果某只股票存在缺失数据,可以用fillmissing函数填充后再绘制,避免图表出现断裂
  • 可以给不同股票设置个性化颜色,比如plot(dates, prices(:,1), 'r', dates, prices(:,2), 'b', ...)手动指定线条颜色
  • 若要突出某只股票,可以加粗对应的线条,比如将该线条的LineWidth设置为2.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:17:29