主要内容

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

可视化温度和湿度之间的相关性

此示例显示如何从现有的 ThingSpeak™ 通道读取多个变量并生成散点图来检查温度和压力的相关性。在示例中,您修改了 MATLAB Analysis 和 MATLAB Visualization App 提供的代码模板之一。

ThingSpeak 通道 12397 包含来自位于马萨诸塞州内蒂克市 MathWorks® 园区停车场顶部的气象站的气象数据。字段 4 包含温度测量,字段 3 包含湿度测量。

基于模板代码创建 MATLAB 可视化

要创建来自 ThingSpeak 通道的数据的散点图可视化,您可以使用 MATLAB Visualization App 中提供的代码模板编写 MATLAB® 脚本。

转至 Apps 选项卡并选择 MATLAB Visualizations。点击 New,选择 Visualize correlation between temperature and humidity,然后点击 Create

可视化您的数据

ThingSpeak 会将生成温度直方图的代码填充到 MATLAB 代码字段中。

1) 设置与 ThingSpeak 通信的变量。在此示例中,Read 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 (MATLAB) 生成绘图。使用 xlabel (MATLAB)ylabel (MATLAB) 设置 x 轴和 y 轴标签。

scatter(temperatureData,humidityData);
xlabel('Temperature');
ylabel('Humidity');

Figure contains an axes object. The axes object with xlabel Temperature, ylabel Humidity contains an object of type scatter.

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 (MATLAB) 函数可以对线性数据进行拟合。以下代码未包含在模板中。要绘制多个分布,请将此代码添加到模板。

1) 使用 polyfit (MATLAB) 对数据进行拟合。指定 1 作为线性拟合的最后一个参量。

fitData = polyfit(temperatureData,humidityData,1);
display(fitData(1),'Slope');
Slope = 
-5.5865e-15
display(fitData(2),'Intercept');
Intercept = 
95.0000

2) 由于温度和湿度没有明确的关系,线性拟合不一定是好的拟合。您可以使用相关系数检查拟合质量。计算并显示相关系数。

r = corrcoef(temperatureData,humidityData);
display(r(2),'Correlation Coefficient');
   NaN

3) 按 Save and Run 生成对比图。散点图具有负斜率,因此相关系数也为负:对于该测量,湿度随温度的升高而降低。R 值为 1 或 -1 表示完美拟合。该数据的 r 值证实拟合度相对较差。

另请参阅

函数

主题