基于matlab实现三维时序图

一、数据集来源

本次数据来源于2024年的mathorcup杯数学建模比赛的C题的附件二数据,通过excel的数据透视表整理可得每个分拣中心的每天每小时的数据。

二、三维时序图的优势

问题的要求是争对每天每小时的货量进行分析,一般的二维时间序列只能突显出以天数为变量或者以小时为变量,故可视化就会存在局限性,不能够明显地同时考虑在时间的双变量的影响下发生的货量变化。而三维时序图通过将离散的数据点连接可以构建出类似地势的3D图,可以有效地直接观察货量随着时间变化的趋势。

三、结果与分析

代码基于matlab实现,下面贴出简要地针对一个分拣中心某天的数据实现和效果图,如后续有需要,可以加QQ联系我(QQ:3081076288)

clear;clc
% 导入分拣中心30天每时货量
data=xlsread('sc2.xlsx');
% 小时范围
y = 0:23;
% 天数范围
x = 1:30;
[x, y] = meshgrid(x, y); % 将其转成网格格式
z=data(2:end,2:end-1);
mesh(x, y, z)% 绘图之前要确定参数均为网格格式
xlabel('x:天');
ylabel('y:时');
zlabel('Z:货量');
title('SC9过去30天每时的货量');
% 插入颜色栏
colorbar;
colormap(summer);

为了能够更好地展示出3D时序图和一般的时间序列图的区别,下面我也给出2D时序图和实现代码,并针对两类图做对比分析。

import pandas as pd
import matplotlib.pyplot as plt

# 假设你已经有了包含货量的数据集
file_path = r"\附件一支表.xlsx"
df = pd.read_excel(file_path)

# 确保日期列是日期时间类型
df['日期'] = pd.to_datetime(df['日期'])

# 按日期排序数据
df.sort_values(by='日期', inplace=True)

# 将日期列设置为索引
df.set_index('日期', inplace=True)

# 绘制货量时间序列图
plt.figure(figsize=(12, 6))  # 设置图表大小
plt.plot(df.index, df['货量'], label='实际货量')  # 绘制实际货量曲线
plt.xlabel('日期')  # x轴标签
plt.ylabel('货量')  # y轴标签
plt.title('货量时间序列')  # 图表标题
plt.legend()  # 显示图例
plt.grid(True)  # 显示网格
plt.show()  # 显示图表

图表展示了不同分拣中心在一段时间内的货量变化趋势。通过直观观察,我们可以明显地发现在11月11日附近的货量有一个显著的峰值。然而,对于每个小时货量波动的细节,仅凭图表的宏观展示是难以捕捉的。为了更细致地分析每小时的货量变化,我们需要更精细的可视化方法来揭示这些微观层面的动态,即3D时序图。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值