可视化温度和湿度之间的相关性
此示例显示如何从现有的 ThingSpeak™ 通道读取多个变量并生成散点图来检查温度和压力的相关性。在示例中,您修改了 MATLAB Analysis 和 MATLAB Visualization App 提供的代码模板之一。
ThingSpeak 通道 12397 包含来自位于马萨诸塞州纳蒂克 MathWorks® 园区停车场顶部的气象站的气象数据。字段 4 包含温度测量,字段 3 包含湿度测量。
从模板代码创建 MATLAB Visualization
要创建来自 ThingSpeak 通道的数据的散点图可视化,您可以使用 MATLAB Visualization App 中提供的代码模板编写 MATLAB® 脚本。
转至 Apps 选项卡并选择 MATLAB Visualizations。点击 New,选择 Visualize correlation between temperature and humidity,然后点击 Create。

可视化您的数据
ThingSpeak 使用代码填充 MATLAB Code 字段以生成温度直方图。
1) 设置与 ThingSpeak 通信的变量。在此示例中,读取 API 密钥是不必要的,因为气象站通道是公共的。如果您正在从自己的通道阅读,则可以修改这些值。
readChannelID = 12397;
TemperatureFieldID = 4;
HumidityFieldID = 3;
readAPIKey = '';2) 使用 thingSpeakRead 从温度和湿度字段中检索 300 个点。
data = thingSpeakRead(readChannelID,'Fields',[TemperatureFieldID HumidityFieldID], ... 'NumPoints',300, 'ReadKey',readAPIKey);
3) 提取温度和风速数据。
temperatureData = data(:, 1); humidityData = data(:, 2);
4) 使用 scatter 生成图。使用 xlabel 和 ylabel 设置 x 轴和 y 轴标签。
scatter(temperatureData,humidityData); xlabel('Temperature'); ylabel('Humidity');

5) 您可以编辑模板代码以适合您的应用程序。例如,您可以编辑要读取的点数和代码中的情节标题。点击 Save and Run 以生成输出。由于散点图是根据实时数据生成的,因此您的图看起来与此图相似但不完全相同。
将可视化添加到通道视图
您可以选择将已保存的可视化效果添加到您的通道。在 Display Settings 中,点击 Add/Edit this Visualization to a Channel 以展开通道列表。

点击与要添加可视化效果的通道对应的复选框。要添加私有可视化效果,请选中 Private View。要共享 URL 并将可视化内容添加到 Public View,请选择 Create a public URL。要更新您的选择,请点击 Save Display Settings。

确定线性拟合
当拟合度设置为 1 时,polyfit 函数可以提供对线性数据的拟合。以下代码未包含在模板中。要绘制多个分布,请将此代码添加到模板。
1) 使用 polyfit 对数据进行拟合。指定 1 作为线性拟合的最后一个参量。
fitData = polyfit(temperatureData,humidityData,1);
display(fitData(1),'Slope');Slope = -1.4785
display(fitData(2),'Intercept');Intercept = 105.7281
2) 由于温度和湿度没有明确的关系,线性拟合不一定是好的拟合。您可以使用相关系数检查拟合质量。计算并显示相关系数。
r = corrcoef(temperatureData,humidityData);
display(r(2),'Correlation Coefficient');-0.9873
3) 按 Save and Run 生成双图。散点图具有负斜率,因此相关系数也为负:对于该测量,湿度随温度的升高而降低。R 值为 1 或 -1 表示完美拟合。该数据的 r 值证实拟合度相对较差。
另请参阅
函数
scatter(MATLAB) |polyfit(MATLAB) |corrcoef(MATLAB) |thingSpeakRead|xlabel(MATLAB) |ylabel(MATLAB)