このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
温度と湿度の相関関係を可視化する
この例では、既存の ThingSpeak ™チャネルから複数の変数を読み取り、散布図を生成して温度と圧力の相関関係を調べる方法を示します。この例では、MATLAB Analysis アプリと MATLAB Visualizations アプリによって提供されるコード テンプレートの 1 つを変更します。
ThingSpeak チャネル12397 には、マサチューセッツ州ネイティックの MathWorks ® キャンパスの駐車場の上にある気象観測所からの気象データが含まれています。フィールド 4 には温度測定値が含まれ、フィールド 3 には湿度測定値が含まれます。
テンプレートコードからMATLAB の可視化を作成
ThingSpeak チャネルからのデータの散布図可視化を作成するには、MATLAB Visualizations アプリで提供されるコード テンプレートを使用して MATLAB ® スクリプトを記述できます。
Apps タブに移動し、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 を共有し、可視化を Public View に追加するには、[Create a public 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)