可视化温度和湿度之间的相关性
此示例展示如何从现有 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
生成绘图。使用 xlabel
和 ylabel
设置 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 值证实拟合效果相对较差。
另请参阅
函数
scatter
(MATLAB) |polyfit
(MATLAB) |corrcoef
(MATLAB) |thingSpeakRead
|xlabel
(MATLAB) |ylabel
(MATLAB)