【问题标题】:MATLAB: Time series plot for n daysMATLAB:n 天的时间序列图
【发布时间】:2021-04-13 01:06:09
【问题描述】:

我正在尝试做一个散点图,x 轴以 0.25 为步长占据 5 到 15 的范围,y 轴占据 20 天的 41 个随机数据。

clc
clear
x = 5:0.25:15;
y = rand(41,20);

如何在 MATLAB 上实现散点图,其中 x 范围适用于所有 20 列?

【问题讨论】:

  • plot(x, y, 'kx')?
  • for n = 1:20 t=5:0.25:15; scatter(t,y(:,n)); hold on end
  • 上面的代码对于执行任务是否正确?另外我如何在生成图的 MATLAB 上执行二阶最佳拟合多项式?
  • 您刚刚粘贴的代码会生成一个包含 20 个 x 值的散点图,每个 x 有 41 个均匀分布的数字。该图是随机的,使用polyfit 之类的命令进行多项式拟合根本不会获得任何信息。
  • 如何修改代码以生成所需的散点图?

标签: matlab plot time series scatter


【解决方案1】:

您是否可能想要一个带有连接线的散点图,以便您可以识别不同的数据集?在这里,我使用了相同的 for 循环方法并使用 hold on 保存绘图。在plot(t,y(:,n),'.-'); 行中,术语'.-' 用于指示在数据点处用连接的线和点绘制数据。正如上面对随机数据集的评论所指出的那样,做一个最佳拟合多项式将不会揭示非常有用的信息,如果根本没有的话。

clf;
Start_Time = 5;
End_Time = 15;
Time_Interval = 0.25;
t = (Start_Time: Time_Interval: End_Time); 
y = rand(41,20);

for n = 1:20 
    plot(t,y(:,n),'.-'); 
    hold on 
end

Legend_Labels = "Data 1";
for Dataset_Index = 2: size(y,2)
   Legend_Labels = [Legend_Labels "Data "+num2str(Dataset_Index)];    
end

Current_Figure = gcf;
Current_Figure.Position = [50 50 1000 400];
title("Plotting Random Data with Respect to Time");
legend(Legend_Labels,'Location','EastOutside','Orientation','vertical');
xlabel("Time (s)"); ylabel("Value");

使用 MATLAB R2019b 运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2017-03-31
    • 2020-08-01
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多