主要内容

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

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

此示例显示如何从现有的 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 生成图。使用 xlabelylabel 设置 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 函数可以提供对线性数据的拟合。以下代码未包含在模板中。要绘制多个分布,请将此代码添加到模板。

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 值证实拟合度相对较差。

另请参阅

函数

主题