比较三天不同的温度数据
此示例演示如何从现有 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) 使用 plot
和 hold
生成绘图。使用 legend
设置图例以区分系列。然后提供轴和图表标题:xlabel
、ylabel
和 title
。
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”。要更新您的选择,请点击“保存显示设置”。
另请参阅
函数
corrcoef
(MATLAB) |thingSpeakRead
|plot
(MATLAB) |xlabel
(MATLAB) |ylabel
(MATLAB) |title
(MATLAB) |hold
(MATLAB)