现在有三列数据,
第一列是1-36(月),第二列是分类1-6(种),第三列是对应量,总共100万行左右
我想通过matlab,得到每月、每个种类的总对应量,并画一个以月份为横轴,每月总对应量为纵轴,并且有六个种类的折线图(在一个图上)
请问怎么编写☺️
% 假设你的数据保存在一个3列的矩阵中,分别命名为month, category, value
% data = [month, category, value];
% 假设上述矩阵已经存在并被赋值给data
% 创建一个新的矩阵以保存每月每种类型的总和
total_values = zeros(36, 6);
% 对数据进行迭代,计算每月每种类型的总和
for i = 1:size(data, 1)
month = data(i, 1);
category = data(i, 2);
value = data(i, 3);
total_values(month, category) = total_values(month, category) + value;
end
% 绘制图形
figure; % 创建一个新的图形窗口
hold on; % 使图形保持开启,这样可以在同一张图上绘制多条线
% 为每种类型绘制一条线
types = [1 2 3 4 5 6];
for i = 1:length(types)
plot(total_values(:, i), 'r'); % 绘制红色线,:表示所有月份
end
% 设置图形参数
xlabel('月份'); % 设置x轴标签
ylabel('总对应量'); % 设置y轴标签
title('每月总对应量的折线图'); % 设置图形标题
legend('种类1', '种类2', '种类3', '种类4', '种类5', '种类6'); % 添加图例,对应于每种类型
grid on; % 添加网格线
% 读取数据
data = csvread('data.csv');
% 按月份和种类分组并计算总和
monthly_summary = groupsummary(data, 'Class', {'1', '2', '3', '4', '5', '6'}, 'Sum');
% 绘制折线图
figure;
monthly_summary.Monthly.Line;
xlabel('月份');
ylabel('每月总对应量');
title('每月每种对应量折线图');
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢