このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
温度と湿度の相関関係を可視化
この例では、既存のThingSpeak™チャネルから複数の変数を読み取り、散布図を生成して温度と圧力の相関関係を調べる方法を示します。この例では、 MATLAB AnalysisおよびMATLAB Visualizationsアプリによって提供されるコード テンプレートの 1 つを変更します。
ThingSpeak channel 12397 には、マサチューセッツ州ネイティックのMathWorks®キャンパスの駐車場の上にある気象観測所からの気象データが含まれています。フィールド 4 には温度測定値が含まれ、フィールド 3 には湿度測定値が含まれます。
「MATLAB」を作成するテンプレート コードからの視覚化
ThingSpeakチャネルからのデータの散布図視覚化を作成するには、 MATLAB Visualizationsアプリで提供されるコード テンプレートを使用してMATLAB®スクリプトを作成します。
[アプリ] タブに移動し、[MATLAB Visualizations] を選択します。「新規」をクリックし、「温度と湿度の相関関係を視覚化」を選択し、「作成」をクリックします。
データを視覚化する
ThingSpeak は、温度ヒストグラムを生成するコードを「MATLABコード」「」フィールドに入力します。
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 の作成」を選択します。選択内容を更新するには、「表示設定を保存」をクリックします。
線形近似を決定する
polyfit
関数は、適合度が値 1 に設定されている場合、線形データへの適合を提供できます。次のコードはテンプレートには含まれていません。複数の分布をプロットするには、このコードをテンプレートに追加します。
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) 保存して実行 を押して二重プロットを生成します。散布図には負の傾きがあるため、負の相関係数が得られます。この測定では、温度が上昇すると湿度が低下します。r 値が 1 または -1 の場合は、完全に適合していることを示します。このデータの r 値は、適合度が比較的低いことを裏付けています。
参考
関数
scatter
(MATLAB) |polyfit
(MATLAB) |corrcoef
(MATLAB) |thingSpeakRead
|xlabel
(MATLAB) |ylabel
(MATLAB)
関連する例
- ヒストグラムを使用してデータの変動を理解する
- コンパスプロットによる方向データの視覚化
- 面積プロットを使用して交通データ セットを比較する
- 3 日間の温度データを比較する
- 温度と風速を 2 つの異なる軸にプロットする