Main Content

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

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

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

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

创建一个 MATLAB 从模板代码进行可视化

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

转到 App 选项卡并选择“MATLAB 可视化”。点击“新建”,选择“可视化温度和湿度之间的相关性”,然后点击“创建”。

可视化您的数据

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');

5) 您可以编辑模板代码以适合您的应用。例如,您可以在代码中编辑要读取的点数和绘图标题。点击“保存并运行”“”以生成输出。由于散点图是根据实时数据生成的,因此您的图看起来与此图相似但不完全相同。

将可视化添加到您的通道视图

或者,您可以将保存的可视化添加到您的通道。在“显示设置”中,点击“将此可视化添加/编辑到通道”以展开通道列表。

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

确定线性拟合

当拟合度设置为值 1 时,polyfit 函数可以提供对线性数据的拟合。以下代码未包含在模板中。要绘制多个分布,请将此代码添加到模板中。

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

fitData = polyfit(temperatureData,humidityData,1);
display(fitData(1),'Slope');
Slope = -1.1647
display(fitData(2),'Intercept');
Intercept = 104.3294

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

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

3) 按 保存并运行 生成双图。散点图具有负斜率,因此具有负相关系数:对于此测量,湿度随着温度的升高而降低。r 值为 1 或 -1 表示完美拟合。该数据的 r 值证实拟合效果相对较差。

另请参阅

函数

相关示例

详细信息