使用面积图比较交通数据集
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
将东行数据和西行数据绘制在同一轴上。使用 xlabel
、ylabel
和 legend
在绘图上设置适当的标签。您可以编辑模板代码以适合您的应用。例如,您可以编辑代码中的阅读天数和绘图标题。请记住,thingSpeakRead
一次只能读取 8000 个数据点,这只是一天的数据。
area(aveCar.Timestamps,[eastCars,westCars]); xlabel('Time'); ylabel('Average Car Density per Hour'); legend({'East','West'});
5) 按 保存并运行 生成绘图。面积图是根据实时数据生成的,因此您的可视化与此图不同。请注意高峰时段和午餐时间的突出峰值。剧情表明最好早上6点前上班,晚上8点后回家
将可视化添加到您的通道视图
或者,您可以将保存的可视化添加到您的通道。在“显示设置”中,使用“将此可视化添加/编辑到通道”旁边的加号来展开通道列表。
点击与要将可视化添加到的通道对应的复选框。要添加私有可视化,请选中“私有视图”。要共享 URL 并将可视化添加到“公共视图”,请点击“创建公共 URL”。要更新您的选择,请点击“保存显示设置”。
另请参阅
函数
Histogram
(MATLAB) |thingSpeakRead
|area
(MATLAB) |retime
(MATLAB) |xlabel
(MATLAB) |ylabel
(MATLAB) |legend
(MATLAB)