Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

使用面积图比较交通数据集

ThingSpeak™ 中的 MATLAB® Analysis 和 MATLAB Visualizations App 可让您从一系列代码模板中进行选择,作为构建您自己的项目的起点。此示例演示如何使用面积图将两个相似变量与从现有 ThingSpeak™通道读取的数据进行比较。

ThingSpeak channel 38629 包含马萨诸塞州内蒂克 9 号公路的交通数据。数据是通过 Raspberry Pi 上的计数算法处理的视频源生成的。字段 1 包含西行车辆数,字段 2 包含东行车辆数。

创建一个 MATLAB 从模板代码进行可视化

要创建 ThingSpeak通道中的一组数据的面积图,请使用提供的代码模板创建 MATLAB 脚本。

导航到 App 选项卡,然后选择“MATLAB 可视化”。点击“新建”,选择“使用面积图比较流量数据集”,然后点击“创建”。

可视化您的数据

ThingSpeak 使用模板代码填充“MATLAB 代码”“”字段以读取数据,然后生成面积图。

1) 设置与 ThingSpeak 通信的变量。汽车计数器通道是公共的,因此您不需要添加读取 API Key。如果您正在从自己的通道读取,则可以修改这些值。

readChannelID = 38629;
readAPIKey = '';

2)使用thingSpeakRead读取最近33小时数据的字段1和字段2。使用时间表输出格式可以简化时间操作和平均数据。

carData = thingSpeakRead(readChannelID,'Fields',[1 2],'NumMinutes',2000,...
    'ReadKey',readAPIKey,'Outputformat','Timetable');

3) 使用retime对每小时的数据进行平均,并将其保存在新的时间表中。由于汽车计数器每15秒记录一次数值,因此较长周期的趋势往往隐藏在15秒的波动中。将 15 秒平均值乘以 240,以表示一小时内汽车数量的平均值。

aveCar = retime(carData,'hourly','mean');
eastCars = aveCar.DensityOfEastboundCars*240;
westCars = aveCar.DensityOfWestboundCars*240;

4) 使用area将东行数据和西行数据绘制在同一轴上。使用 xlabelylabellegend 在绘图上设置适当的标签。您可以编辑模板代码以适合您的应用。例如,您可以编辑代码中的阅读天数和绘图标题。请记住,thingSpeakRead 一次只能读取 8000 个数据点,这只是一天的数据。

area(aveCar.Timestamps,[eastCars,westCars]);
xlabel('Time');
ylabel('Average Car Density per Hour');
legend({'East','West'});

5) 按 保存并运行 生成绘图。面积图是根据实时数据生成的,因此您的可视化与此图不同。请注意高峰时段和午餐时间的突出峰值。剧情表明最好早上6点前上班,晚上8点后回家

将可视化添加到您的通道视图

或者,您可以将保存的可视化添加到您的通道。在“显示设置”中,使用“将此可视化添加/编辑到通道”旁边的加号来展开通道列表。

点击与要将可视化添加到的通道对应的复选框。要添加私有可视化,请选中“私有视图”。要共享 URL 并将可视化添加到“公共视图”,请点击“创建公共 URL”。要更新您的选择,请点击“保存显示设置”。

另请参阅

函数

相关示例

详细信息