Main Content

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

比较三天不同的温度数据

此示例演示如何从现有 ThingSpeak™通道读取数据并生成同一轴上具有三个系列的绘图。在示例中,您将使用 ThingSpeak 中的 MATLAB Analysis 和 MATLAB Visualizations App 提供的代码模板之一作为起点。

ThingSpeak channel 12397 包含来自马萨诸塞州内蒂克 MathWorks® 园区停车场顶部气象站的天气数据。字段 4 包含温度测量值。

从模板代码创建 MATLAB 可视化

要创建来自 ThingSpeak通道的三个系列数据的可视化,您可以使用 “MATLAB 可视化” App 中提供的代码模板编写 MATLAB 脚本。

转到 App 选项卡并点击“MATLAB 可视化”。点击“新建”,选择“比较三天的温度数据”,然后点击“创建”。

可视化您的数据

ThingSpeak 使用代码填充 MATLAB Code 字段以生成三系列线图。

1) 设置与 ThingSpeak 通信的变量。在此示例中,读取 API 密钥是不必要的,因为气象站通道是公共的。如果您正在从自己的通道读取,则可以修改这些值。

readChannelID = 12397;
TemperatureFieldID = 4;
readAPIKey = '';

2)使用thingSpeakRead检索每天的数据。指定 'DateRange' 允许您设置数据收集的停止和开始日期。

temperatureDay1 = thingSpeakRead(readChannelID,'Fields',TemperatureFieldID,'dateRange',...
    [datetime('today')-days(1),datetime('today')],'ReadKey',readAPIKey); 

temperatureDay2 = thingSpeakRead(readChannelID,'Fields',TemperatureFieldID,'dateRange',...
    [datetime('today')-days(2),datetime('today')-days(1)],'ReadKey',readAPIKey); 

temperatureDay3 = thingSpeakRead(readChannelID,'Fields',TemperatureFieldID,'dateRange',...
    [datetime('today')-days(3),datetime('today')-days(2)],'ReadKey',readAPIKey);

3) 创建与每个数据集的长度相匹配的持续时间数组。每个系列的长度根据确切的开始时间而波动。每分钟都会进行一次测量,但并不是每天都进行测量。

myTimes1=minutes(1:length(temperatureDay1));
myTimes2=minutes(1:length(temperatureDay2));
myTimes3=minutes(1:length(temperatureDay3));

4) 使用 plothold 生成绘图。使用 legend 设置图例以区分系列。然后提供轴和图表标题:xlabelylabeltitle

plot(myTimes1,temperatureDay1, myTimes2,temperatureDay2, myTimes3,temperatureDay3);
legend({'Day1','Day2','Day3'});
xlabel('Minutes')
ylabel('Temperature F');
title('Three-Day Temperature Comparison');

5) 您可以编辑模板代码以适合您的应用。例如,编辑代码以更改阅读天数和绘图标题。按“保存并运行”生成绘图。

由于该图是根据真实数据生成的,因此您的图看起来与此图相似但不完全相同。

将数据叠加在同一图上显示了当天温度变化的三种不同行为。

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

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

另请参阅

函数

相关示例

详细信息